symfonic.platform.conversation_pg_schema¶
conversation_pg_schema ¶
Explicit PostgreSQL schema for the shared native HTTP conversation authority.
install_conversation_schema is a migration step run by the schema owner,
never by a request or by authority start-up. The runtime authority only
attests that the installed tables carry this version's marker and that its
login holds the row privileges it needs; a missing or foreign table fails
closed. These tables are separate from the graph-memory conversation log
(native_conversation_*) and share nothing with it.
ConversationTables
dataclass
¶
Fully qualified table names under one validated schema identifier.
PostgresConversationUnavailable ¶
attest_conversation_schema
async
¶
Refuse unless every table is installed at this version and usable by this login.
Source code in src/symfonic/platform/conversation_pg_schema.py
attest_pool
async
¶
Attest through one pooled connection; a driver refusal is Unavailable.
A login without schema USAGE or a table privilege, an unreachable
server, or a refused connection must reach the caller as the typed
503 refusal, not as a raw driver error at the first request.
Source code in src/symfonic/platform/conversation_pg_schema.py
install_conversation_schema
async
¶
Create the tables in an existing schema and grant the runtime login row access.
Run by the schema owner as an explicit migration. Idempotent: an existing
table keeps its rows. The runtime login gets USAGE on the schema (it
cannot name the tables without it) and row privileges on the tables;
PUBLIC gets nothing on the tables.