{"id":"@lssm-tech/integration.meeting-effect-worker-postgres-http","slug":"integration.meeting-effect-worker-postgres-http","name":"@lssm-tech/integration.meeting-effect-worker-postgres-http","version":"0.1.3","path":"packages/integrations/meeting-effect-worker-postgres-http","manifestPath":"packages/integrations/meeting-effect-worker-postgres-http/package.json","manifestBlobSha":"4c3e8dd5cd28278d91efb88d8c2e44e6704155c4","layer":"integrations","physicalArea":null,"primaryArea":"company-and-work","classification":{"privateDeclared":true,"catalogFamily":null,"catalogKind":null,"catalogStatus":null,"adoptionMode":null,"stability":null},"description":"Production PostgreSQL, BYOK, authority, rollout, and HTTP delivery composition for the meeting effect worker.","descriptionOrigin":"package.json","catalog":{},"canonicalImports":[],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint:check":"node ../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.organization-planning-runtime":"workspace:^","@lssm-tech/lib.organization-planning-spec":"workspace:^","postgres":"^3.4.9"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@types/bun":"catalog:types","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./composition":"./src/composition.ts","./config":"./src/config.ts","./http-boundary":"./src/http-boundary.ts","./postgres":"./src/postgres.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./composition":{"types":"./dist/composition.d.ts","bun":"./dist/composition.js","node":"./dist/node/composition.js","default":"./dist/composition.js"},"./config":{"types":"./dist/config.d.ts","bun":"./dist/config.js","node":"./dist/node/config.js","default":"./dist/config.js"},"./http-boundary":{"types":"./dist/http-boundary.d.ts","bun":"./dist/http-boundary.js","node":"./dist/node/http-boundary.js","default":"./dist/http-boundary.js"},"./postgres":{"types":"./dist/postgres.d.ts","bun":"./dist/postgres.js","node":"./dist/node/postgres.js","default":"./dist/postgres.js"}},"types":"./dist/index.d.ts","files":null,"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.meeting-effect-worker-postgres-http","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./composition","importPath":"@lssm-tech/integration.meeting-effect-worker-postgres-http/composition","target":"./src/composition.ts","targets":[{"conditions":[],"target":"./src/composition.ts","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/src/composition.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/src/composition.ts","sourceStatus":"verified source file"}]},{"subpath":"./config","importPath":"@lssm-tech/integration.meeting-effect-worker-postgres-http/config","target":"./src/config.ts","targets":[{"conditions":[],"target":"./src/config.ts","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/src/config.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/src/config.ts","sourceStatus":"verified source file"}]},{"subpath":"./http-boundary","importPath":"@lssm-tech/integration.meeting-effect-worker-postgres-http/http-boundary","target":"./src/http-boundary.ts","targets":[{"conditions":[],"target":"./src/http-boundary.ts","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/src/http-boundary.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/src/http-boundary.ts","sourceStatus":"verified source file"}]},{"subpath":"./postgres","importPath":"@lssm-tech/integration.meeting-effect-worker-postgres-http/postgres","target":"./src/postgres.ts","targets":[{"conditions":[],"target":"./src/postgres.ts","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/src/postgres.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/src/postgres.ts","sourceStatus":"verified source file"}]}],"entryCount":5,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.meeting-effect-worker-postgres-http.txt"},"readme":{"status":"available","body":"# Meeting Effect Worker PostgreSQL + HTTP Composition\n\nProduction composition for `@lssm-tech/app.meeting-effect-worker`. It claims only\nexplicitly assigned owner scopes, binds all five RLS axes inside PostgreSQL\ntransactions, decrypts meeting state with the shared versioned BYOK cipher, obtains\nfresh authority and effect-time reproof from a host authority service, enforces the\nhost rollout contract, and submits approved artifacts to a live delivery service.\n\nThe package does not contain a success stub or a generic “delivered” fallback. A\ndelivery is successful only after the configured HTTPS service returns an exact,\nidentity-matched provider receipt. Network errors, timeouts, non-200 responses,\nmalformed JSON, stale authority, missing rollout, and receipt mismatches all fail\nclosed and flow into the worker's bounded retry policy; typed permanent\nrejections are dead-lettered with their failure code.\n\n## Host configuration\n\nSet the worker host's module to:\n\n```text\nOPA_MEETING_EFFECT_WORKER_COMPOSITION_MODULE=@lssm-tech/integration.meeting-effect-worker-postgres-http\n```\n\nRequired variables:\n\n| Variable | Contract |\n| --- | --- |\n| `OPA_MEETING_EFFECT_DATABASE_URL` | PostgreSQL URL for the governed meeting schema. |\n| `OPA_MEETING_EFFECT_OWNER_SCOPES_JSON` | JSON array of 1–100 strict `OpaOwnerScope` values; duplicates are rejected. |\n| `OPA_MEETING_EFFECT_AUTHORITY_URL` | HTTPS endpoint for fresh resolution and effect-time reproof. |\n| `OPA_MEETING_EFFECT_DELIVERY_URL` | HTTPS endpoint that performs real provider delivery. |\n| `OPA_MEETING_EFFECT_AUTHORITY_TOKEN` | Authority-only bearer credential of at least 32 UTF-8 bytes. |\n| `OPA_MEETING_EFFECT_DELIVERY_TOKEN` | Delivery-only bearer credential of at least 32 UTF-8 bytes. |\n| `OPA_MEETING_EFFECT_ROLLOUTS_JSON` | Strict rollout-config array with one entry for each assigned product. |\n| `OPA_BYOK_KEY_VERSION` | Active version used by `EnvMasterKeySource`. |\n| `OPA_BYOK_MASTER_KEY_v1`, `_v2`, `_v3` | Current and retained rotation keys; each configured value is at least 32 decoded bytes. |\n\nOptional bounded settings are `OPA_MEETING_EFFECT_DATABASE_SSL_MODE`\n(`require`, `prefer`, or explicit `allow`), `OPA_MEETING_EFFECT_INTERVAL_MS`,\n`OPA_MEETING_EFFECT_LIMIT`, `OPA_MEETING_EFFECT_LEASE_MS`,\n`OPA_MEETING_EFFECT_MAX_ATTEMPTS`, and `OPA_MEETING_EFFECT_HTTP_TIMEOUT_MS`.\n`OPA_MEETING_EFFECT_KILL_SWITCH=1` stops new claims (readiness reports `paused`);\nany value other than unset, empty, `0` or `1` is rejected at startup.\n\nThe database must have migration `0166` (`opaMeetingFollowUpMigrationStatements`):\nit adds the `dead_letter` outbox state, `last_error_code`, `provider_receipt_ref`\nand the host delivery ledger. Without it, settling a lease fails and the effect\nis retried after its lease expires.\n\n## HTTPS boundary\n\nBoth endpoints receive authenticated JSON `POST` requests and must return HTTP 200\nwith `application/json`. Authority requests carry `version`, a unique `requestRef`,\nthe full lease, and either `operation: \"resolve\"` or `operation: \"reprove\"`. An\nallow response must echo the request reference and return an active, strict runtime\nauthority containing `opa.meeting_dispatch.execute`; a deny response contains only\n`version`, `requestRef`, and `decision: \"deny\"`.\n\nDelivery requests use the v2 envelope defined by\n`OpaMeetingEffectDeliveryRequestSchema` in\n`@lssm-tech/lib.organization-planning-spec`: `operation: \"deliver\"`, a\n`requestRef`, the effect reference as `idempotencyKey`, the owner scope, plan and\nmeeting references, the approved effect (target, artifact, recipient and effect\ndigest), the approved artifact digest and the plan approval receipt. Artifact\ncontent is never sent; the host reloads and re-verifies it. The API host\n(`/api/internal/opa/meeting-effects/deliver`) routes targets to its follow-up\nadapters and answers with `OpaMeetingEffectDeliveryResponseSchema`:\n\n```json\n{\n  \"version\": \"v2\",\n  \"requestRef\": \"meeting-effect-request:...\",\n  \"effectRef\": \"meeting-dispatch-effect:...\",\n  \"status\": \"delivered\",\n  \"providerReceiptRef\": \"provider-receipt:...\"\n}\n```\n\n`status` may also be `drafted` (calendar proposals) or `rejected` with a failure\n`code` and `retryable` flag. Permanent rejections dead-letter the effect at once;\nretryable ones follow the bounded exponential backoff (1 s doubling to 5 min,\n`OPA_MEETING_EFFECT_MAX_ATTEMPTS`, then `attempts_exhausted`).\n\nThe distinct authority and delivery bearers are sent only in the\n`Authorization` header. They are never included in\nconfiguration errors, response bodies, rollout digests, or persisted meeting state.\n","sourcePath":"packages/integrations/meeting-effect-worker-postgres-http/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/meeting-effect-worker-postgres-http/README.md","blobSha":"380d2b775045bedb14c5f38b647729239a51f542","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"company-and-work","areaTitle":"Company, work and service operations","displayName":"integration.meeting-effect-worker-postgres-http","runtimes":[],"platforms":[],"kind":"integrations","scope":"Workspace only","canonicalRoute":"/docs/packages/integration.meeting-effect-worker-postgres-http/","contextUrl":"/docs/packages/integration.meeting-effect-worker-postgres-http.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}