appsWorkspace onlyv0.4.2

app.api-founder-suite-monolith

Inspect the package guide, declared imports and source relationships.

@lssm-tech/app.api-founder-suite-monolith
Source, release and verification context

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

Package source ↗ Manifest ↗
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 PACKAGEapp.api-founder-suite-monolithapps

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

30 declaraciones · se muestran las primeras 6SELECT TO INSPECT

Pactena Founder Intelligence API

Standalone Elysia host for Pactena Founder, Executive, and Talent Intelligence. The PostgreSQL and independent AuthOS layers are live; optional email and AI capabilities remain truthfully blocked until their provider credentials exist.

Environment

Server-only variables:

  • PACTENA_DATABASE_URL
  • PACTENA_DATABASE_RUNTIME_ROLE pins the exact non-owner login expected by startup and readiness. The role must own no tables and must not create roles, databases, or schema objects, replicate, or bypass RLS. Runtime readiness verifies public schema structure and grants but leaves the forced-RLS SEO seed inspection to the explicit migration-owner verification lane.
  • PACTENA_WAITLIST_DATABASE_URL (low-privilege waitlist writer)
  • DATABASE_URL is never accepted. The waitlist credential must resolve to the same protocol/host/port/database identity as PACTENA_DATABASE_URL.
  • BETTER_AUTH_SECRET
  • BETTER_AUTH_BASE_URL (defaults to https://api.pactena.run)
  • APP_WEB_BASE_URL (defaults to https://app.pactena.run)
  • MARKETING_WEB_BASE_URL (defaults to https://www.pactena.run)
  • PACTENA_LSSM_RP_ENABLED, PACTENA_LSSM_RP_SECURITY_REVIEW_REF, and PACTENA_LSSM_RP_CLIENT_SECRET for the reviewed central LSSM OIDC relying party. Enablement without review evidence or a 32+ character secret fails startup closed.
  • PACTENA_MEMBERSHIP_PROVISION_TOKEN is the 32+ character, server-only token used by central AuthOS to idempotently create an app_pactena membership. Product routes require that local membership even when a Better Auth session exists.
  • PACTENA_GOVERNED_DATA_DATABASE_URL selects the separate product-local encrypted projection-copy store. PACTENA_GOVERNED_RECOVERY_TOKEN is its distinct 32+ character central-worker bearer; PACTENA_GOVERNED_DATA_AUTO_MIGRATE=true and PACTENA_GOVERNED_DATA_SSL_MODE=require|allow|prefer control explicit schema activation and transport. Do not enable the central Pactena recovery origin until every governed projection copy uses this canonical store. Export stays unavailable until a Pactena source exporter is bound.
  • PACTENA_GOVERNED_DATA_REGION and the secret-manager JSON value PACTENA_GOVERNED_MATERIALIZATION_BINDINGS jointly enable encrypted-copy admission at /internal/governed-data/materializations/:sourceApplicationId. Each array record has exact keys sourceApplicationId and bearerToken, and each source-to-Pactena pair uses a distinct 32+ character bearer. Omit both to keep materialization unavailable while recovery remains active. Partial topology, unknown sources, purpose/field/region/expiry/retention/key drift, and plaintext fail closed before persistence. Production also requires the receiver key service and retention cleanup to be qualified.
  • PACTENA_VAULT_ENCRYPTION_KEY
  • PACTENA_WAITLIST_TOKEN_SECRET
  • CRON_SECRET
  • OPENAI_API_KEY and optional PACTENA_OPENAI_MODEL (gpt-5.6-luna)
  • MISTRAL_API_KEY and optional PACTENA_MISTRAL_MODEL (mistral-small-2603)
  • RESEND_API_KEY and AUTH_EMAIL_FROM
  • PACTENA_FORMS_MILESTONES (forms.v0 by default, or all)
  • PACTENA_FORMS_VERIFICATION_ENDPOINT, bearer token, and channel list
  • PACTENA_FORMS_AI_ENDPOINT, bearer token, provider ID, and self-hosted flag
  • PACTENA_FORMS_DEFENSE_ENDPOINT, bearer token, and identifier secret for distributed fail-closed abuse control
  • COMPANY_OS_METRICS_API_ORIGIN, COMPANY_OS_METRICS_PACTENA_ISSUER, and COMPANY_OS_METRICS_PACTENA_SHARED_SECRET for short-lived, scope-bound CompanyOS metric session exchange

The /api/v1/company-metrics peer proxy has an explicit operation allowlist, requires the Pactena application origin and an idempotency key for mutations, and derives company scope from fresh session authority. Founder-private scope is not representable by this proxy.

No provider key or database URL has a fixture fallback in production.

Conversations, notifications and calendar

The CommunicationOS BFF under /api/v1/communication-os/* exchanges the session for a scoped CommunicationOS bearer and forwards an explicit operation allowlist. It includes the canonical contract send POST /api/v1/communication-os/communication/message/send/v3.0.0 used by the shared client: the app origin, a matching idempotency-key header and body idempotencyKey, and the session-derived workspace and space are required, so a retry replays the original message and a founder-private room never accepts a company-scoped send. Reconnect uses POST .../v2/auth/realtime-ticket and cursor replay through GET .../v2/events.

GET and POST /api/v1/notification-preferences are the Pactena preference center over @lssm-tech/lib.notification/product-channels: in-app is always on and updates are revision-checked. An update sends expectedRevision, globalEnabled, enabledChannels and consentedChannels; the BFF mints each consent ref from the session (person, channel and new revision), so email is enabled only with that explicit consent and a client never supplies consent evidence. Responses list consentedChannels, never the refs. A stale revision answers 409 idempotency_conflict, the conflict code of the Pactena error vocabulary. POST /api/v1/calendar/intake imports upcoming founder-private calendar meetings the founder has not declined as digest-only OPA meeting workspaces through the shared intake materializer, and answers only its counts. Both mutations require the app origin and x-csrf-token equal to the session id, like the meeting workspace, and cap the body (8 KB for preferences, 1 KB for intake, which takes none); the CommunicationOS send reads at most 64 KB even for chunked uploads. Both answer 503 dependency_unavailable until a preference store and CommunicationOS admission host, or a calendar connection host and intake materializer, are bound; nothing is bound in the deployed host today.

Public signup remains disabled. Direct magic links resolve existing invited emails only. When the reviewed LSSM relying party is enabled, the local Pactena identity may be projected from a centrally authenticated email only after the central app_pactena entitlement gate succeeds; the exact product scope is requested and no ecosystem cookie is shared with Pactena. Central activation also unregisters Pactena's local magic-link plugin and email callback. Disabling the RP restores that existing-email path as the explicit rollback authority; the two authorities are never enabled together.

Forms management is exposed at /forms, public forms at /f/{opaqueToken}, and the API at /api/forms/v1. Migrations 0003_forms_platform.sql and 0004_forms_scope_hardening.sql are the Pactena-owned immutable Forms schema and row-bound public-access upgrade.

Database lifecycle

Database changes never run during startup or request handling. Operators use the explicit database:plan, database:bootstrap:fresh, database:adopt-0001, database:migrate, database:verify, database:snapshot:verify, database:reset:nonlive, and database:prove:postgres scripts. Mutating lanes require an evidence reference; the non-live reset additionally requires a typed allowlisted fingerprint, a fresh encrypted snapshot receipt, provider effects disabled, and approved same-task Connect decision plus passed replay artifacts.

Migration 0001 remains immutable at sha256:216989309872df7873bb983ec37439c68c93bb8e0165035b93eadb4e6f86daff. Pactena-owned migration 0002 creates the fresh-only 31-table OPA v2 schema, pins all 28 owner tables to product_ref='pactena', and records both versions in pactena_owned_migration_ledger. Adoption verifies the exact 0001 catalog before recording provenance. Full reset/adoption execution remains blocked until external database, snapshot, and Connect authority exists.

Migration 0005 installs the forced-RLS governed meeting workspace tables; 0007 adds digest-only public access grants and 0008 adds owner-scoped calendar occurrence mappings plus immutable recorder-review evidence. 0009 adds recurring intake definitions and expiring, token-fenced execution leases. The Elysia host mounts the nineteen exact /api/v2/opa/meeting-* and /api/v2/opa/smart-meetings/* operations with Better Auth session-derived organization scope. Mutations require the Pactena app origin and the current session id as CSRF evidence. Meeting content is recovered from an encrypted, optimistically versioned owner aggregate; approval, artifact, dispatch, CRDT, share, recorder, and outbox evidence remains on the dedicated SQL surfaces.

The current fresh schema contains exactly 84 public tables: 18 immutable Pactena baseline tables, 52 OPA tables, 12 Forms tables, pactena_product_memberships, and pactena_owned_migration_ledger. Forms verification is pinned to the 12 tables created by immutable migrations 0003/0004; newer shared Forms features require an explicit Pactena migration. It deliberately preserves unrelated tables. Reset authorization, snapshot proof, and Connect replay remain pending; this inventory does not authorize execution.

The read-only readiness probe reports bounded verification phases (ledger, tables, inventory, rls, grants, products, or seed) and a safe SQLSTATE. It never logs SQL, credentials, connection details, or provider error messages. Privilege repairs must use the explicit same-database PACTENA_DATABASE_MIGRATION_URL; never grant ledger access to PUBLIC.

Declared capabilities.

This manifest does not declare a capability catalogue. Use the guide, import map and source to assess the package.

Imports and export paths.

0 entries

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

This workspace does not declare package export paths.

Dependencies and related packages.

Runtime dependencies 30
@better-auth/drizzle-adapter
1.7.5
better-auth
1.7.5
drizzle-orm
catalog:data
elysia
catalog:server
pg
catalog:server
postgres
^3.4.9
zod
catalog:
Development dependencies 5
@electric-sql/pglite
catalog:data
@types/node
catalog:types
@types/pg
^8.23.1
typescript
catalog:

Package scripts.

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

buildbun run build:elysia
build:elysiabun build --target node --packages bundle --loader .sql:text --outfile dist/index.js src/app.ts && mkdir -p api/dist api/db/migrations && cp dist/index.js api/dist/index.js && cp db/migrations/*.sql api/db/migrations/
database:planbun src/database-cli.ts plan
database:bootstrap:freshbun src/database-cli.ts bootstrap:fresh
database:adopt-0001bun src/database-cli.ts adopt-0001
database:migratebun src/database-cli.ts migrate
database:verifybun src/database-cli.ts verify
database:snapshot:verifybun src/database-cli.ts snapshot:verify
database:reset:nonlivebun src/database-cli.ts reset:nonlive
database:prove:postgresbun src/database-cli.ts prove:postgres
devbun run --watch src/app.ts
startbun run ./dist/index.js
lint:checknode ../../../scripts/biome.cjs check .
testbun test
typecheckbun --bun x tsgo --project tsconfig.build.json --noEmit
prebuildbun run typecheck
Tu vista

Make room for your context.

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

Tu contexto

The different parts of you

Choose a starting point

Una mezcla útil de contexto, imágenes y orientación discreta.

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

Comodidad de lectura

Elige tu idioma

El idioma de la interfaz solo cambia el texto. Los mercados, precios y flujos de trabajo conservan sus propios ajustes.

Cobertura de traducción

Parte del contenido se muestra en inglés.

Navegación151
Grafo616
Categorías188
Portafolio332
Ejemplos2035
Vista previa de la fuente41

Se añadirán más traducciones a medida que se revise el contenido.

Esta preferencia se guarda en este navegador.

Buscar en el sitio web

Puntos de partida útiles

Sin resultados. Prueba una frase más corta, un nombre de operación u otro ámbito de búsqueda.

UN POCO DE ESPACIO PARA EXPLORAR

Encuentra algo que explorar.

Abre una vista detallada en esta página, prueba otra perspectiva o sigue el detalle a su propia página.

Cómo funcionan las vistas previas y los controles
01

Mirar antes de salir

Pasa el cursor por un enlace o enfócalo con Tab para ver una vista previa. Hacer clic en el enlace original o pulsar Intro siempre abre su destino.

02

Mantener el contexto

Entra en la vista previa para explorar sus secciones. Usa Alt + ↓ desde un enlace enfocado para entrar con el teclado. Escape la cierra.

03

Abrir las posibilidades

Las filas desplegables, las perspectivas y los controles destacados revelan más. Tu vista cambia la comodidad de lectura y el contexto que exploras.

Un botón separado para mirar más de cerca

Muestra pequeños botones de vista previa junto a los enlaces donde haya espacio. Toca el ojo para inspeccionar o el enlace para ir directamente. Esta elección permanece en esta pestaña.

No se recoge historial de navegación. El movimiento reducido sigue tu dispositivo y Tu vista.