integrationPackage manifestv2.1.4

integration.job-application-store

FORCE-RLS Postgres persistence for candidate-private job applications.

@lssm-tech/integration.job-application-store
Source, release and verification context

Source snapshot bcc79fcc · Declared package version 2.1.4. This page combines the checked-in package guide and manifest; commands and runtime behavior were not executed in this review.

Package source ↗ Manifest ↗
servernode
EXPLORE THE PACKAGE

See where this package fits.

Follow a declared connection, inspect an import, then open the source guide when you need the detail.

THIS PACKAGEintegration.job-application-storeintegrations

Arrows point from a package to its direct dependency. Each count is derived from the captured manifests.

2 declarationsSELECT TO INSPECT

@lssm-tech/integration.job-application-store

PostgreSQL persistence for the privacy-isolated candidate application context. It stores only encrypted/opaque candidate references, immutable lifecycle receipts, exact effect reservations, inbox aliases, verification challenges, and outbox records.

The runtime role is a non-owner and every table has FORCE RLS across ecosystem, tenant, workspace, candidate, and deployment scope. The deployment worker can claim work items across candidates only within one exact ecosystem, tenant, workspace, and deployment; the claimed row restores the candidate scope before domain execution. Worker credentials have no direct queue or effect-reservation DML. Narrowly granted functions enforce the complete composite identity, live lease, owner, and fence for claim, heartbeat, completion, failure, and effect reservation. No wider access exists for profiles, accounts, inboxes, effects, or receipts.

Queue digest migration is expand/backfill/verify/activate: add the nullable column and partial index, deploy digest-writing producers, run bounded resumable backfill batches to zero, observe mixed versions, then activate NOT NULL only in a later release.

Migration 0008_browser_execution_state.sql adds candidate-scoped browser bindings, immutable signed account-workflow generations, and digest-idempotent browser evidence. Active binding/workflow indexes are rebuildable current-state seams while superseded rows retain replay history. Exact replays are distinct from payload/signature collisions. Candidate deletion clears opaque session handles, workflow payloads/signatures, and evidence metadata while preserving tombstone digests and the deletion receipt. It captures authorized document revision references before the aggregate tombstone erases them, cryptographically clears matching candidate credentials, and tombstones document metadata in the same transaction.

The hermetic PGlite proof applies migrations 0001–0015 in order, including queue functions, browser state, encrypted material, documents, alias routing, and webhook ingress. The material migration owns its bounded JSON-object helper inside job_application_core; it does not rely on a test-only or nonexistent PostgreSQL built-in. Migration 0014 reconciles the legacy document columns with the canonical payload-revision writer through an additive nullable-column upgrade, activated payload constraint, and current-document index. Migration 0015 captures external object, candidate-material, browser-session, inbox-content, and export references into a private FORCE-RLS deletion ledger before database scrubbing. Deployment workers can claim and settle tasks only through owner/fence/lease-checked functions; the fifteen-minute due index makes propagation breaches observable.

bun run test:postgres:docker runs the same chain against a pinned disposable PostgreSQL 17 image and authenticates as separate runtime, read-only, webhook, and worker login roles. It enumerates every private table to prove ENABLE plus FORCE RLS, proves that no application role owns a table or has SUPERUSER/BYPASSRLS, verifies transaction-local scope reset, and exercises negative cross-candidate, secret, webhook-route, and direct-worker-access cases. The disposable proof uses a unique host temporary directory and never reuses or prunes Docker state.

Inbound Resend routing uses a dedicated job_application_webhook role. It has schema usage plus SELECT-only access to deployment-scoped HMAC alias routes; it cannot read candidate applications or mutate routes. Executable PGlite tests switch into the runtime, read-only, and webhook roles and prove FORCE-RLS candidate isolation and negative write permissions. Verification work persists only opaque inbox/material references and collision-sensitive request digests.

Migration 0013_webhook_scoped_ingress.sql permits the dedicated webhook role to append inbox events/messages, verification challenges, and matching outbox events only when an active, unexpired alias route binds the same ecosystem, tenant, workspace, candidate, deployment, and application. Durable verification execution atomically moves one pending challenge to reserved; completion, retry release, and takeover are guarded state transitions.

Declared capabilities.

Integration Job Application Store

FORCE-RLS Postgres persistence for candidate-private job applications.

Use it to

  • Adopt force-rls postgres persistence for candidate-private job applications

Requires

  • TypeScript

Choose another boundary when

  • The @lssm-tech/integration.job-application-store package constraints do not match the target runtime or platform.

@lssm-tech/integration.job-application-store

@lssm-tech/integration.job-application-store/alias-routing

@lssm-tech/integration.job-application-store/accounts

@lssm-tech/integration.job-application-store/browser-state

@lssm-tech/integration.job-application-store/deployment-queue

@lssm-tech/integration.job-application-store/inbox

@lssm-tech/integration.job-application-store/material-vault

@lssm-tech/integration.job-application-store/outbox

@lssm-tech/integration.job-application-store/postgres

@lssm-tech/integration.job-application-store/queue

@lssm-tech/integration.job-application-store/resource-mutations

@lssm-tech/integration.job-application-store/resource-metadata

@lssm-tech/integration.job-application-store/resource-reads

@lssm-tech/integration.job-application-store/resources

@lssm-tech/integration.job-application-store/scope

@lssm-tech/integration.job-application-store/transitions

@lssm-tech/integration.job-application-store/verification-work

@lssm-tech/integration.job-application-store/verification-material

@lssm-tech/integration.job-application-store/verification-execution

Imports and export paths.

29 entries

These are package-manifest entry points. Named symbols listed above come from the capability catalogue; this is not an exhaustive TypeScript symbol reference.

29 imports

@lssm-tech/integration.job-application-store/inbox
@lssm-tech/integration.job-application-store/outbox
@lssm-tech/integration.job-application-store/queue
@lssm-tech/integration.job-application-store/scope

Dependencies and related packages.

Runtime dependencies 2
Development dependencies 4
@electric-sql/pglite
catalog:data
typescript
catalog:

Package scripts.

Commands declared by this package. Review its setup requirements before running them; no command here was executed by this review.

buildcontractspec-bun-build build
build:bundlecontractspec-bun-build transpile
build:typescontractspec-bun-build types
cleanrimraf dist .turbo
lint:checknode ../../../scripts/biome.cjs check .
testbun test
test:postgres:docker./scripts/test-postgres-docker.sh
typechecktsgo --noEmit
Your view

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Your context

The different parts of you

Choose a starting point

A useful mix of context, visuals and gentle guidance.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Reading comfort

Choose your language

Interface language changes text only. Markets, prices and workflows keep their own settings.

Translation coverage

Original source

Navigation151
Graph616
Categories378
Portfolio833
Examples2,035
Source preview1,542

More translations will be added as content is reviewed.

This preference is saved on this browser.

Search the website

Useful starting points

No results. Try a shorter phrase, an operation name or another search area.

A LITTLE ROOM TO EXPLORE

Find something to explore.

Open a closer look on this page, try a different perspective, or follow the detail into its own page.

How previews and controls work
01

Look before you leave

Hover a link or focus it with Tab to see a preview. Clicking the original link or pressing Enter always opens its destination.

02

Stay with the context

Move into the preview to explore its sections. Use Alt + ↓ from a focused link to enter it with the keyboard. Escape closes it.

03

Open the possibilities

Disclosure rows, perspective choices and highlighted controls reveal more. Your view changes reading comfort and the context you explore.

A separate button for a closer look

Show small preview buttons beside links where there is room. Tap the eye to inspect, or tap the link to go straight there. This choice stays in this tab.

No browsing history is collected. Reduced motion follows your device and Your view.