diff --git a/docker-compose.jobs.yml b/docker-compose.jobs.yml index 9dae09ee06..a59e8db210 100644 --- a/docker-compose.jobs.yml +++ b/docker-compose.jobs.yml @@ -23,11 +23,11 @@ services: PGDATABASE: constructive # Api configuration API_ENABLE_SERVICES: "true" - API_EXPOSED_SCHEMAS: "metaschema_public,services_public,constructive_auth_public" + API_EXPOSED_SCHEMAS: "metaschema_public,constructive_routing_public,constructive_auth_public" # API_IS_PUBLIC=false enables header-based routing (X-Api-Name, X-Database-Id, X-Meta-Schema) API_IS_PUBLIC: "false" # Meta schemas used for schema validation and X-Meta-Schema routing - API_META_SCHEMAS: "metaschema_public,services_public,metaschema_modules_public,constructive_auth_public" + API_META_SCHEMAS: "metaschema_public,constructive_catalog_public,constructive_routing_public,constructive_apps_public,metaschema_modules_public,constructive_auth_public" API_ANON_ROLE: "administrator" API_ROLE_NAME: "administrator" ports: @@ -58,11 +58,11 @@ services: PGDATABASE: constructive # Api configuration API_ENABLE_SERVICES: "false" - API_EXPOSED_SCHEMAS: "metaschema_public,services_public,constructive_auth_public" + API_EXPOSED_SCHEMAS: "metaschema_public,constructive_routing_public,constructive_auth_public" # Public-facing server API_IS_PUBLIC: "true" # Meta schemas used for schema validation - API_META_SCHEMAS: "metaschema_public,services_public,metaschema_modules_public,constructive_auth_public" + API_META_SCHEMAS: "metaschema_public,constructive_catalog_public,constructive_routing_public,constructive_apps_public,metaschema_modules_public,constructive_auth_public" API_ANON_ROLE: "anonymous" API_ROLE_NAME: "authenticated" ports: diff --git a/graphile/graphile-llm/README.md b/graphile/graphile-llm/README.md index 03816aac61..b40e826af8 100644 --- a/graphile/graphile-llm/README.md +++ b/graphile/graphile-llm/README.md @@ -56,7 +56,7 @@ The preset bundles all plugins listed below. You can also import each plugin ind - **Text mutation fields** — adds `{column}Text: String` companion fields on create/update inputs for vector columns - **RAG queries** — adds `ragQuery` and `embedText` root query fields; detects `@hasChunks` smart tags for chunk-aware retrieval - **Pluggable providers** — provider-based architecture for both embedding and chat completion (Ollama via `@agentic-kit/ollama`, extensible to OpenAI, etc.) -- **Per-database configuration** — reads `llm_module` from `services_public.api_modules` for per-API provider config +- **Per-database configuration** — reads `llm_module` from `constructive_routing_public.api_modules` for per-API provider config - **Toggleable** — each capability (`enableTextSearch`, `enableTextMutations`, `enableRag`) can be independently enabled or disabled - **Plugin-conditional** — fields only appear in the schema when the plugin is loaded diff --git a/graphile/graphile-llm/src/chat.ts b/graphile/graphile-llm/src/chat.ts index ea973d47d7..5962e900a1 100644 --- a/graphile/graphile-llm/src/chat.ts +++ b/graphile/graphile-llm/src/chat.ts @@ -96,7 +96,7 @@ export function buildChatCompleter(config: ChatConfig): ChatFunction | null { /** * Build a chat completer from an `llm_module` api_modules row. * - * @param data - The llm_module data from services_public.api_modules + * @param data - The llm_module data from constructive_routing_public.api_modules * @returns A ChatFunction, or null if the chat provider is not configured */ export function buildChatCompleterFromModule(data: LlmModuleData): ChatFunction | null { diff --git a/graphile/graphile-llm/src/embedder.ts b/graphile/graphile-llm/src/embedder.ts index 99bac24c33..f3572855eb 100644 --- a/graphile/graphile-llm/src/embedder.ts +++ b/graphile/graphile-llm/src/embedder.ts @@ -102,7 +102,7 @@ export function buildEmbedder(config: EmbedderConfig): EmbedderFunction | null { /** * Build an embedder from an `llm_module` api_modules row. * - * @param data - The llm_module data from services_public.api_modules + * @param data - The llm_module data from constructive_routing_public.api_modules * @returns An EmbedderFunction, or null if the provider is not supported */ export function buildEmbedderFromModule(data: LlmModuleData): EmbedderFunction | null { diff --git a/graphile/graphile-llm/src/plugins/llm-module-plugin.ts b/graphile/graphile-llm/src/plugins/llm-module-plugin.ts index 0b24e48f74..04ea68efaa 100644 --- a/graphile/graphile-llm/src/plugins/llm-module-plugin.ts +++ b/graphile/graphile-llm/src/plugins/llm-module-plugin.ts @@ -1,7 +1,7 @@ /** * LlmModulePlugin * - * Detects and loads the `llm_module` configuration from `services_public.api_modules`. + * Detects and loads the `llm_module` configuration from `constructive_routing_public.api_modules`. * Makes the resolved embedder and chat completer available to other plugins * via the build context. * diff --git a/graphile/graphile-llm/src/types.ts b/graphile/graphile-llm/src/types.ts index 21fafa0dff..d121c87a84 100644 --- a/graphile/graphile-llm/src/types.ts +++ b/graphile/graphile-llm/src/types.ts @@ -103,7 +103,7 @@ export interface ChatConfig { // ─── LLM Module Types ─────────────────────────────────────────────────────── /** - * The shape of the `llm_module` data stored in `services_public.api_modules`. + * The shape of the `llm_module` data stored in `constructive_routing_public.api_modules`. * * This is the per-database configuration that controls which LLM provider * and models are available for that API. diff --git a/graphile/graphile-settings/src/plugins/custom-inflector.ts b/graphile/graphile-settings/src/plugins/custom-inflector.ts index f205f3cc0f..8609a89d46 100644 --- a/graphile/graphile-settings/src/plugins/custom-inflector.ts +++ b/graphile/graphile-settings/src/plugins/custom-inflector.ts @@ -181,7 +181,7 @@ export const InflektPlugin: GraphileConfig.Plugin = { * WHY THIS EXISTS: * PostGraphile v5's default `_schemaPrefix` inflector only removes the prefix * for the FIRST schema in the pgServices.schemas array. All other schemas get - * prefixed with their schema name (e.g., "services_public_api" -> "servicesPublicApi"). + * prefixed with their schema name (e.g., "constructive_routing_public_api" -> "constructiveRoutingPublicApi"). * * This is problematic for multi-schema setups where you want clean, consistent * naming across all schemas. diff --git a/packages/csv-to-pg/__tests__/__snapshots__/export.test.ts.snap b/packages/csv-to-pg/__tests__/__snapshots__/export.test.ts.snap index 11678d166a..3ac86d94c1 100644 --- a/packages/csv-to-pg/__tests__/__snapshots__/export.test.ts.snap +++ b/packages/csv-to-pg/__tests__/__snapshots__/export.test.ts.snap @@ -95,7 +95,7 @@ exports[`test case test case parser 1`] = ` `; exports[`test case text fields convert empty strings to NULL when preserveEmptyStrings is false 1`] = ` -"INSERT INTO services_public.webauthn_settings ( +"INSERT INTO app_public.webauthn_settings ( id, database_id, rp_id, @@ -105,7 +105,7 @@ exports[`test case text fields convert empty strings to NULL when preserveEmptyS `; exports[`test case text fields preserve empty strings by default 1`] = ` -"INSERT INTO services_public.webauthn_settings ( +"INSERT INTO app_public.webauthn_settings ( id, database_id, rp_id, @@ -115,7 +115,7 @@ exports[`test case text fields preserve empty strings by default 1`] = ` `; exports[`test case text fields with null values produce NULL 1`] = ` -"INSERT INTO services_public.webauthn_settings ( +"INSERT INTO app_public.webauthn_settings ( id, database_id, rp_id, diff --git a/packages/csv-to-pg/__tests__/export.test.ts b/packages/csv-to-pg/__tests__/export.test.ts index e9e037f58a..eaa8ad4729 100644 --- a/packages/csv-to-pg/__tests__/export.test.ts +++ b/packages/csv-to-pg/__tests__/export.test.ts @@ -278,7 +278,7 @@ it('empty array fields emit empty array literal', async () => { it('text fields preserve empty strings by default', async () => { const parser = new Parser({ - schema: 'services_public', + schema: 'app_public', singleStmts: true, table: 'webauthn_settings', fields: { @@ -305,7 +305,7 @@ it('text fields preserve empty strings by default', async () => { it('text fields convert empty strings to NULL when preserveEmptyStrings is false', async () => { const parser = new Parser({ - schema: 'services_public', + schema: 'app_public', singleStmts: true, table: 'webauthn_settings', preserveEmptyStrings: false, @@ -333,7 +333,7 @@ it('text fields convert empty strings to NULL when preserveEmptyStrings is false it('text fields with null values produce NULL', async () => { const parser = new Parser({ - schema: 'services_public', + schema: 'app_public', singleStmts: true, table: 'webauthn_settings', fields: {