@fayz-ai/plugin-workforce 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +60 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -6240,6 +6240,64 @@ SELECT app.seed_setting_keys($$[
|
|
|
6240
6240
|
}
|
|
6241
6241
|
]$$::jsonb);
|
|
6242
6242
|
`;
|
|
6243
|
+
var MIGRATION_007_A_PORTA_DE_SERVICO_DO_PONTO_FECHA_TAMBEM = `-- ---------------------------------------------------------------------------
|
|
6244
|
+
-- 007_a_porta_de_servico_do_ponto_fecha_tambem.sql
|
|
6245
|
+
--
|
|
6246
|
+
-- \u2500\u2500 o buraco, e por que ele estava invis\xEDvel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
6247
|
+
--
|
|
6248
|
+
-- As fun\xE7\xF5es que este plugin cria em \`migration\` nasceram execut\xE1veis por
|
|
6249
|
+
-- PUBLIC \u2014 \xE9 o padr\xE3o do Postgres, e ningu\xE9m revogou. Elas s\xE3o
|
|
6250
|
+
-- \`SECURITY DEFINER\` e escrevem dados de QUALQUER inquilino: uma delas
|
|
6251
|
+
-- alcan\xE7\xE1vel pela chave an\xF4nima \xE9 a base inteira alcan\xE7\xE1vel pela chave
|
|
6252
|
+
-- an\xF4nima.
|
|
6253
|
+
--
|
|
6254
|
+
-- Isto n\xE3o aparecia porque a \`000_baseline\` falhava e levava junto os outros
|
|
6255
|
+
-- seis arquivos deste plugin \u2014 as fun\xE7\xF5es nunca chegavam a existir na bancada.
|
|
6256
|
+
-- Com a baseline consertada (#443) o passo inteiro passou a aplicar, e as duas
|
|
6257
|
+
-- su\xEDtes que guardam esta fronteira ficaram vermelhas na hora:
|
|
6258
|
+
--
|
|
6259
|
+
-- 090_migration_ledger/001 "no migration function is executable by anon
|
|
6260
|
+
-- or authenticated" \u2014 have 9, want 0
|
|
6261
|
+
-- crm/009 "nenhuma fun\xE7\xE3o do schema migration \xE9 cham\xE1vel
|
|
6262
|
+
-- por anon" \u2014 have 9, want 0
|
|
6263
|
+
--
|
|
6264
|
+
-- Ou seja: a regra sempre esteve escrita e medida; o que faltava era o plugin
|
|
6265
|
+
-- chegar ao banco para ser medido. \xC9 o argumento do #338 de novo \u2014 um plugin
|
|
6266
|
+
-- fora da corrente \xE9 um plugin cujas tabelas (e cujas portas) s\xE3o coincid\xEAncia.
|
|
6267
|
+
--
|
|
6268
|
+
-- \u2500\u2500 por extenso, e n\xE3o varrendo o cat\xE1logo \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
6269
|
+
--
|
|
6270
|
+
-- A tenta\xE7\xE3o \xE9 \`REVOKE\` num la\xE7o sobre \`pg_proc\`. J\xE1 foi tentado neste repo e
|
|
6271
|
+
-- derrubou 35 su\xEDtes: varrer revoga de fun\xE7\xF5es que outros passos criaram e
|
|
6272
|
+
-- precisam de execu\xE7\xE3o. Revogar em massa \xE9 f\xE1cil de escrever e imposs\xEDvel de
|
|
6273
|
+
-- revisar. A lista abaixo \xE9 a das fun\xE7\xF5es DESTE plugin, nomeada uma a uma.
|
|
6274
|
+
-- ---------------------------------------------------------------------------
|
|
6275
|
+
|
|
6276
|
+
DO $$
|
|
6277
|
+
DECLARE
|
|
6278
|
+
v_fn text;
|
|
6279
|
+
v_args text;
|
|
6280
|
+
v_n integer := 0;
|
|
6281
|
+
BEGIN
|
|
6282
|
+
-- Cada writer do de-para, com a assinatura que a corrente lhe deu. Nomear em
|
|
6283
|
+
-- vez de varrer \xE9 o que torna esta lista revis\xE1vel.
|
|
6284
|
+
FOR v_fn, v_args IN
|
|
6285
|
+
SELECT p.proname, pg_get_function_identity_arguments(p.oid)
|
|
6286
|
+
FROM pg_proc p
|
|
6287
|
+
JOIN pg_namespace n ON n.oid = p.pronamespace
|
|
6288
|
+
WHERE n.nspname = 'migration'
|
|
6289
|
+
AND (p.proname LIKE 'upsert_wf\\_%' OR p.proname IN ('_wf_person', '_point_punch_photo'))
|
|
6290
|
+
LOOP
|
|
6291
|
+
EXECUTE format('REVOKE ALL ON FUNCTION migration.%I(%s) FROM PUBLIC, anon, authenticated', v_fn, v_args);
|
|
6292
|
+
-- \`service_role\` fica: \xE9 quem a importa\xE7\xE3o usa, e \xE9 a \xFAnica identidade que
|
|
6293
|
+
-- tem raz\xE3o para atravessar inquilinos.
|
|
6294
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION migration.%I(%s) TO service_role', v_fn, v_args);
|
|
6295
|
+
v_n := v_n + 1;
|
|
6296
|
+
END LOOP;
|
|
6297
|
+
|
|
6298
|
+
RAISE NOTICE 'workforce/007: % fun\xE7\xE3o(\xF5es) de migration fechadas a anon e authenticated', v_n;
|
|
6299
|
+
END $$;
|
|
6300
|
+
`;
|
|
6243
6301
|
var MIGRATIONS = [
|
|
6244
6302
|
{ id: "000_baseline", sql: MIGRATION_000_BASELINE },
|
|
6245
6303
|
{ id: "001_a_prova_da_batida_tem_bytes", sql: MIGRATION_001_A_PROVA_DA_BATIDA_TEM_BYTES },
|
|
@@ -6247,7 +6305,8 @@ var MIGRATIONS = [
|
|
|
6247
6305
|
{ id: "003_o_ponto_em_aberto_para_de_mentir_a_duracao", sql: MIGRATION_003_O_PONTO_EM_ABERTO_PARA_DE_MENTIR_A_DURACAO },
|
|
6248
6306
|
{ id: "004_a_jornada_implausivel_nao_soma", sql: MIGRATION_004_A_JORNADA_IMPLAUSIVEL_NAO_SOMA },
|
|
6249
6307
|
{ id: "005_a_ficha_trabalhista_tem_onde_morar", sql: MIGRATION_005_A_FICHA_TRABALHISTA_TEM_ONDE_MORAR },
|
|
6250
|
-
{ id: "006_o_custo_de_pessoal_e_um_ramo_do_plano", sql: MIGRATION_006_O_CUSTO_DE_PESSOAL_E_UM_RAMO_DO_PLANO }
|
|
6308
|
+
{ id: "006_o_custo_de_pessoal_e_um_ramo_do_plano", sql: MIGRATION_006_O_CUSTO_DE_PESSOAL_E_UM_RAMO_DO_PLANO },
|
|
6309
|
+
{ id: "007_a_porta_de_servico_do_ponto_fecha_tambem", sql: MIGRATION_007_A_PORTA_DE_SERVICO_DO_PONTO_FECHA_TAMBEM }
|
|
6251
6310
|
];
|
|
6252
6311
|
|
|
6253
6312
|
// src/index.ts
|