@fayz-ai/plugin-workforce 0.1.1 → 0.1.3

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 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