Inicio do Projeto Piloto
ci / verify (push) Has been cancelled

This commit is contained in:
camilafagundes committed 2026-10-02 23:59:36 -03:00
1 parent 6e23f1533b
commit 419325db12
52 files changed
+1329 -110

No files matched your search

+12 -4
View File
@@ -10,13 +10,21 @@ if (!workspaceId) {
}
const databaseUrl = process.env.DATABASE_URL;
const db = databaseUrl ? createPostgresDb(databaseUrl) : await createFileDb(path.join(process.cwd(), ".data", "pglite"));
await db.withService((query) =>
query.query(
await db.withService(async (query) => {
await query.query(
`insert into public.workspace_module_flags (workspace_id, module_key, enabled)
values ($1, 'spreadsheet_adapter', $2)
on conflict (workspace_id, module_key) do update set enabled = excluded.enabled, updated_at = now()`,
[workspaceId, enabled],
),
);
);
await query.query(
`insert into public.audit_log (workspace_id, actor_id, action, resource_type, resource_id, result, metadata)
select $1, m.user_id, 'module.flag_changed', 'workspace', $1, 'success', jsonb_build_object('enabled', $2::boolean)
from public.workspace_members m
where m.workspace_id = $1 and m.role = 'owner'
limit 1`,
[workspaceId, enabled],
);
});
console.log(`spreadsheet_adapter ${enabled ? "ligado" : "desligado"}`);
await db.close();
+16 -3
View File
@@ -8,6 +8,9 @@ import { cleanupExpired, listQueuedJobIds, readJobForWorker, recoverStaleJobs, r
import { asJson } from "../src/server/spreadsheet-adapter/db-utils";
import type { JobProgress, RequestContext, Role } from "../src/domain/spreadsheet-adapter/types";
import { assertProductionEnv } from "../src/config/env";
assertProductionEnv(process.env);
const databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl && process.env.NODE_ENV === "production") {
throw new Error("DATABASE_URL é obrigatório para o worker.");
@@ -17,9 +20,19 @@ await migrate(db);
const deps = { db, storage: createStorage(), coordinator: createCoordinator() };
async function tick() {
await recoverStaleJobs(deps);
await cleanupExpired(deps);
for (const jobId of await listQueuedJobIds(deps)) {
await recoverStaleJobs(deps).catch((error) => {
console.error("worker", error instanceof Error ? error.name : "error");
});
await cleanupExpired(deps).catch((error) => {
console.error("worker", "cleanup", error instanceof Error ? error.name : "error");
});
const queued = new Set(await listQueuedJobIds(deps));
for (let index = 0; index < 20; index += 1) {
const jobId = await deps.coordinator.dequeue().catch(() => null);
if (!jobId) break;
queued.add(jobId);
}
for (const jobId of queued) {
const rows = await readJobForWorker(deps, jobId);
const row = rows[0];
if (!row) continue;