# Emergence ## Docs - [Delete Agent](https://docs.emergence.ai/api-reference/agents/delete-agent.md): Delete an agent permanently. - [Get Agent](https://docs.emergence.ai/api-reference/agents/get-agent.md): Get a registered agent by resource URI. - [List Agents](https://docs.emergence.ai/api-reference/agents/list-agents.md): List registered agents in project. - [Register Agent](https://docs.emergence.ai/api-reference/agents/register-agent.md): Register a new agent from an A2A agent card. - [Update Agent](https://docs.emergence.ai/api-reference/agents/update-agent.md): Update an agent's card and metadata (optimistic concurrency via ETag). - [Validate Agent Card](https://docs.emergence.ai/api-reference/agents/validate-agent-card.md): Dry-run validation of an agent card (no persistence). - [Delete Artifact](https://docs.emergence.ai/api-reference/artifacts/delete-artifact.md): Delete artifact - [Download artifact](https://docs.emergence.ai/api-reference/artifacts/download-artifact.md): Download an artifact file from object storage - [Get Artifact](https://docs.emergence.ai/api-reference/artifacts/get-artifact.md): Get artifact details - [List Artifacts](https://docs.emergence.ai/api-reference/artifacts/list-artifacts.md): List artifacts in project - [Preview artifact content](https://docs.emergence.ai/api-reference/artifacts/preview-artifact-content.md): Return a structured preview of an artifact's content. Supports CSV, TSV, plain text, SQL, markdown, HTML, XML, YAML, JSON, and JSONL. - [Update Artifact](https://docs.emergence.ai/api-reference/artifacts/update-artifact.md): Update artifact metadata - [Upload artifact](https://docs.emergence.ai/api-reference/artifacts/upload-artifact.md): Upload a file to object storage and create artifact record - [Export audit events to CSV](https://docs.emergence.ai/api-reference/audit/export-audit-events-to-csv.md): Export audit events as a CSV file with pagination. Results are always scoped to the user's organization. Use page/page_size to paginate large exports (max 50k rows per page). - [Get audit event by ID](https://docs.emergence.ai/api-reference/audit/get-audit-event-by-id.md): Get a specific audit event by its ID. Returns 404 if the event doesn't exist or belongs to a different organization. - [Get audit settings](https://docs.emergence.ai/api-reference/audit/get-audit-settings.md): Get audit settings (retention period) for the current organization. Returns default settings if none have been configured. - [List audit events](https://docs.emergence.ai/api-reference/audit/list-audit-events.md): List audit events for the current organization with optional filters. Results are always scoped to the user's organization (no cross-org access). Requires organization admin permissions. - [Update audit settings](https://docs.emergence.ai/api-reference/audit/update-audit-settings.md): Update audit settings for the current organization. If retention is reduced, events outside the new retention window are immediately deleted. Requires organization admin permissions. - [API Authentication](https://docs.emergence.ai/api-reference/authentication.md): How to authenticate with CRAFT APIs using JWT tokens, client credentials, and the auto-generated SDKs. - [Get bootstrap status](https://docs.emergence.ai/api-reference/bootstrap/get-bootstrap-status.md): Returns information about the bootstrap configuration and default organization. Bootstrap happens automatically during application startup. Requires platform developer role. - [Add context items](https://docs.emergence.ai/api-reference/chat-sessions/add-context-items.md): Add or update datasources, artifacts, and/or attachments on a session. Upserts by (type, resource_uri). Returns the full updated context. 403 if not owned, 404 if not found. - [Delete feedback](https://docs.emergence.ai/api-reference/chat-sessions/delete-feedback.md): Delete the current user's feedback for the turn. 403 if not owned, 404 if session/turn/feedback not found. - [Delete session](https://docs.emergence.ai/api-reference/chat-sessions/delete-session.md): Delete a session and cascade-delete messages, artifacts, and feedback. 403 if not owned, 404 if not found. - [Get session](https://docs.emergence.ai/api-reference/chat-sessions/get-session.md): Get session metadata with turn_count, message_count, artifact_count. Returns 403 if session does not belong to user/project, 404 if not found. - [Get session context](https://docs.emergence.ai/api-reference/chat-sessions/get-session-context.md): Get all datasources, artifacts, and attachments pinned to this session. 403 if not owned, 404 if not found. - [Get turn by ID](https://docs.emergence.ai/api-reference/chat-sessions/get-turn-by-id.md): Get a single turn with all its messages and ``task_updates`` (same shape as list turns). 403 if session not owned, 404 if session or turn not found. - [List session artifacts](https://docs.emergence.ai/api-reference/chat-sessions/list-session-artifacts.md): Paginated artifacts for a session. Optional artifact_type filter (parquet, chart). 403 if session not owned, 404 if not found. - [List session turns](https://docs.emergence.ai/api-reference/chat-sessions/list-session-turns.md): Paginated turns (user + assistant messages grouped by turn_id). Each turn includes ``task_updates`` from ``talk2data.task_updates`` (A2A status stream), peer to ``messages``. Turn order by first message time: `order=asc` (oldest first, default) or `order=desc` (newest first). 403 if session not owne… - [List sessions](https://docs.emergence.ai/api-reference/chat-sessions/list-sessions.md): List sessions for the authenticated user and project. Paginated via page and limit. - [List turn artifacts](https://docs.emergence.ai/api-reference/chat-sessions/list-turn-artifacts.md): Paginated artifacts for a turn. Optional artifact_type filter (parquet, chart). 403 if session not owned, 404 if session or turn not found. - [Remove context items](https://docs.emergence.ai/api-reference/chat-sessions/remove-context-items.md): Remove one or more context items by (item_type, resource_uri). Returns the full updated context. 403 if not owned, 404 if not found. - [Rename session](https://docs.emergence.ai/api-reference/chat-sessions/rename-session.md): Update session title. 403 if session not owned, 404 if not found, 422 if title empty/blank or exceeds 255 chars. - [Submit or update feedback](https://docs.emergence.ai/api-reference/chat-sessions/submit-or-update-feedback.md): Upsert feedback for a turn. 201 created, 200 updated. 403 if session not owned, 404 if session/turn not found, 422 if rating invalid. - [Post Chat Cancel](https://docs.emergence.ai/api-reference/chat/post-chat-cancel.md): Cancel an in-progress task. Sends A2A tasks/cancel to the orchestrator. Only allowed if the task's session belongs to the same user and project. - [Post Chat Messages](https://docs.emergence.ai/api-reference/chat/post-chat-messages.md): Accept a message and kick off background A2A processing. - [Stream Chat Messages](https://docs.emergence.ai/api-reference/chat/stream-chat-messages.md): Stream persisted SSE events for a turn from durable storage. - [Add Memory To Pack](https://docs.emergence.ai/api-reference/context-pack/add-memory-to-pack.md) - [Archive Pack](https://docs.emergence.ai/api-reference/context-pack/archive-pack.md) - [Create Pack](https://docs.emergence.ai/api-reference/context-pack/create-pack.md) - [Deprecate Pack](https://docs.emergence.ai/api-reference/context-pack/deprecate-pack.md) - [Get Pack By Name](https://docs.emergence.ai/api-reference/context-pack/get-pack-by-name.md) - [List Pack Memories](https://docs.emergence.ai/api-reference/context-pack/list-pack-memories.md) - [List Packs](https://docs.emergence.ai/api-reference/context-pack/list-packs.md) - [Permanent Delete Pack](https://docs.emergence.ai/api-reference/context-pack/permanent-delete-pack.md) - [Reactivate Pack](https://docs.emergence.ai/api-reference/context-pack/reactivate-pack.md) - [Soft Delete Pack](https://docs.emergence.ai/api-reference/context-pack/soft-delete-pack.md) - [Update Pack](https://docs.emergence.ai/api-reference/context-pack/update-pack.md) - [Add a memory to a context pack](https://docs.emergence.ai/api-reference/context-packs/add-a-memory-to-a-context-pack.md): Add a new memory to the context pack. - [Archive a context pack](https://docs.emergence.ai/api-reference/context-packs/archive-a-context-pack.md): Archive a context pack. - [Create a new context pack](https://docs.emergence.ai/api-reference/context-packs/create-a-new-context-pack.md): Create a new context pack in the project. - [Deprecate a context pack](https://docs.emergence.ai/api-reference/context-packs/deprecate-a-context-pack.md): Deprecate a context pack. - [Get a context pack by name](https://docs.emergence.ai/api-reference/context-packs/get-a-context-pack-by-name.md): Get a context pack by name within the project. - [Get a memory by name within a context pack](https://docs.emergence.ai/api-reference/context-packs/get-a-memory-by-name-within-a-context-pack.md): Get a memory by name within a context pack. - [List context packs](https://docs.emergence.ai/api-reference/context-packs/list-context-packs.md): List context packs in the project with optional filters. - [List memories in a context pack](https://docs.emergence.ai/api-reference/context-packs/list-memories-in-a-context-pack.md): List memories in the context pack. - [Permanently delete a context pack](https://docs.emergence.ai/api-reference/context-packs/permanently-delete-a-context-pack.md): Permanently delete a context pack and all its memories. - [Reactivate a context pack](https://docs.emergence.ai/api-reference/context-packs/reactivate-a-context-pack.md): Reactivate an archived or deprecated context pack. - [Soft delete a context pack](https://docs.emergence.ai/api-reference/context-packs/soft-delete-a-context-pack.md): Soft delete a context pack (can be recovered). - [Update a context pack](https://docs.emergence.ai/api-reference/context-packs/update-a-context-pack.md): Update a context pack's description, metadata, or config. - [Clear DQ and/or metadata scores for a table](https://docs.emergence.ai/api-reference/data-assets/clear-dq-andor-metadata-scores-for-a-table.md): Clear one or both score types for a table in a single call. Use scope=data_quality to clear DQ tags and rules, scope=metadata to clear the metadata score, or scope=all to clear everything (the Clear All action). Previous data is preserved for history. Running a new assessment restores the score. - [Get a column by FQN](https://docs.emergence.ai/api-reference/data-assets/get-a-column-by-fqn.md): Get a specific column by its fully qualified name (FQN). - [Get a database by FQN](https://docs.emergence.ai/api-reference/data-assets/get-a-database-by-fqn.md): Get a specific database by its fully qualified name (FQN). - [Get a schema by FQN](https://docs.emergence.ai/api-reference/data-assets/get-a-schema-by-fqn.md): Get a specific schema by its fully qualified name (FQN). - [Get a table by FQN](https://docs.emergence.ai/api-reference/data-assets/get-a-table-by-fqn.md): Get a specific table by its fully qualified name (FQN). - [Get latest column profile by FQN](https://docs.emergence.ai/api-reference/data-assets/get-latest-column-profile-by-fqn.md): Get the most recent profiling data for a column by its fully qualified name. - [Get latest table profile by FQN](https://docs.emergence.ai/api-reference/data-assets/get-latest-table-profile-by-fqn.md): Get the most recent profiling data for a table by its fully qualified name. - [Update DQ tags for a table](https://docs.emergence.ai/api-reference/data-assets/update-dq-tags-for-a-table.md): Update (delete) DQ tags for columns in a table. This is a delete-only operation: for each column in the request, tags in the DB that are NOT in the request will be deleted. Columns not in the request are unchanged. Request tags not in DB are ignored. - [Create Data Connection](https://docs.emergence.ai/api-reference/data_connections/create-data-connection.md): Create data connection - [Delete Data Connection](https://docs.emergence.ai/api-reference/data_connections/delete-data-connection.md): Delete data connection - [Get Data Connection](https://docs.emergence.ai/api-reference/data_connections/get-data-connection.md): Get data connection - [Get Data Connection Secret](https://docs.emergence.ai/api-reference/data_connections/get-data-connection-secret.md): Get data connection secrets - [List Connection Types](https://docs.emergence.ai/api-reference/data_connections/list-connection-types.md): List all data connection types with their credential schemas - [List Data Connections](https://docs.emergence.ai/api-reference/data_connections/list-data-connections.md): Get data connections - [Update Data Connection](https://docs.emergence.ai/api-reference/data_connections/update-data-connection.md): Update data connection - [Verify Connection Before Save](https://docs.emergence.ai/api-reference/data_connections/verify-connection-before-save.md): Verify data connection credentials before creating the connection - [Verify Data Connection](https://docs.emergence.ai/api-reference/data_connections/verify-data-connection.md): Verify data connection credentials and accessibility - [Send an HTML email to one or more recipients](https://docs.emergence.ai/api-reference/email/send-an-html-email-to-one-or-more-recipients.md): Send an HTML email to one or more recipients. The `body` field is treated as HTML. - [Generate an embedding vector](https://docs.emergence.ai/api-reference/embeddings/generate-an-embedding-vector.md): Generates an embedding vector for the provided text using the configured embedding provider (default: Google Gemini). Used by publishing services to embed entity text before indexing, and by the global search endpoint to vectorise natural language queries. - [Error Codes](https://docs.emergence.ai/api-reference/errors.md): Error response format, error codes, and troubleshooting guide for CRAFT APIs. - [Delete File](https://docs.emergence.ai/api-reference/files/delete-file.md): Delete file - [Download file](https://docs.emergence.ai/api-reference/files/download-file.md): Download a file from object storage - [Get File](https://docs.emergence.ai/api-reference/files/get-file.md): Get file details - [List Files](https://docs.emergence.ai/api-reference/files/list-files.md): List files in project - [Update File](https://docs.emergence.ai/api-reference/files/update-file.md): Update file metadata - [Upload file](https://docs.emergence.ai/api-reference/files/upload-file.md): Upload a file to object storage and create file record - [Bulk upsert FK edges](https://docs.emergence.ai/api-reference/fk-graph/bulk-upsert-fk-edges.md): Create or update FK edges for a resource. Existing edges are updated, new edges are created. - [Delete FK edges](https://docs.emergence.ai/api-reference/fk-graph/delete-fk-edges.md): Delete all FK edges for a resource. - [Expand table selection via FK relationships](https://docs.emergence.ai/api-reference/fk-graph/expand-table-selection-via-fk-relationships.md): Given a list of table FQNs, discover related tables via FK traversal (BFS). - [Find shortest paths between tables](https://docs.emergence.ai/api-reference/fk-graph/find-shortest-paths-between-tables.md): Find shortest FK paths between all pairs of input tables. - [List FK edges](https://docs.emergence.ai/api-reference/fk-graph/list-fk-edges.md): List FK edges for a resource, optionally filtered by table FQN. - [Add a tag to a glossary term](https://docs.emergence.ai/api-reference/glossary/add-a-tag-to-a-glossary-term.md): Add a tag to a glossary term. - [Create a glossary term](https://docs.emergence.ai/api-reference/glossary/create-a-glossary-term.md): Create a new glossary term. - [Delete a glossary term](https://docs.emergence.ai/api-reference/glossary/delete-a-glossary-term.md): Soft-delete a glossary term. - [Get a glossary term by ID](https://docs.emergence.ai/api-reference/glossary/get-a-glossary-term-by-id.md): Get a single glossary term by its ID. - [Get alphabet index with term counts](https://docs.emergence.ai/api-reference/glossary/get-alphabet-index-with-term-counts.md): Return term counts grouped by first letter for the A-Z index navigation. - [List glossary terms](https://docs.emergence.ai/api-reference/glossary/list-glossary-terms.md): List glossary terms across all DB connections with optional filters. - [Update a glossary term](https://docs.emergence.ai/api-reference/glossary/update-a-glossary-term.md): Update an existing glossary term (partial update). - [Verify a glossary term](https://docs.emergence.ai/api-reference/glossary/verify-a-glossary-term.md): Verify a glossary term (sets status to Verified). - [Verify multiple glossary terms](https://docs.emergence.ai/api-reference/glossary/verify-multiple-glossary-terms.md): Verify multiple glossary terms at once. - [Health Check](https://docs.emergence.ai/api-reference/health-check.md) - [Health Check](https://docs.emergence.ai/api-reference/health/health-check.md) - [Service Info](https://docs.emergence.ai/api-reference/info/service-info.md): Service information endpoint. - [API Overview](https://docs.emergence.ai/api-reference/introduction.md): Overview of CRAFT REST APIs including base URLs, versioning, rate limits, and service endpoints for Governance, Assets, and Utils. - [Execute Query Endpoint](https://docs.emergence.ai/api-reference/mcp/execute-query-endpoint.md): Synchronous SQL execution against a data connection. - [Generate Plotly Chart Endpoint](https://docs.emergence.ai/api-reference/mcp/generate-plotly-chart-endpoint.md): Synchronous Plotly chart generation from tabular data. - [Generate Sql](https://docs.emergence.ai/api-reference/mcp/generate-sql.md): Synchronous SQL generation via the Text2SQL agent. - [Resolve Term](https://docs.emergence.ai/api-reference/mcp/resolve-term.md): Resolve a business term against context pack memories. - [Archive a memory](https://docs.emergence.ai/api-reference/memories/archive-a-memory.md): Archive a memory. - [Archive Memory](https://docs.emergence.ai/api-reference/memories/archive-memory.md) - [Get a memory by ID](https://docs.emergence.ai/api-reference/memories/get-a-memory-by-id.md): Get a memory by ID. - [Get Memory By Id](https://docs.emergence.ai/api-reference/memories/get-memory-by-id.md) - [List Memories](https://docs.emergence.ai/api-reference/memories/list-memories.md) - [Mark a memory as superseded](https://docs.emergence.ai/api-reference/memories/mark-a-memory-as-superseded.md): Mark a memory as superseded by another memory. - [Permanent Delete Memory](https://docs.emergence.ai/api-reference/memories/permanent-delete-memory.md) - [Permanently delete a memory](https://docs.emergence.ai/api-reference/memories/permanently-delete-a-memory.md): Permanently delete a memory. - [Pin a memory](https://docs.emergence.ai/api-reference/memories/pin-a-memory.md): Pin a memory to mark it as important. - [Pin Memory](https://docs.emergence.ai/api-reference/memories/pin-memory.md) - [Soft delete a memory](https://docs.emergence.ai/api-reference/memories/soft-delete-a-memory.md): Soft delete a memory (can be recovered). - [Soft Delete Memory](https://docs.emergence.ai/api-reference/memories/soft-delete-memory.md) - [Supersede Memory](https://docs.emergence.ai/api-reference/memories/supersede-memory.md) - [Unpin a memory](https://docs.emergence.ai/api-reference/memories/unpin-a-memory.md): Unpin a memory. - [Unpin Memory](https://docs.emergence.ai/api-reference/memories/unpin-memory.md) - [Update a memory](https://docs.emergence.ai/api-reference/memories/update-a-memory.md): Update a memory's content, classification, or metadata. - [Update Memory](https://docs.emergence.ai/api-reference/memories/update-memory.md) - [Validate a memory](https://docs.emergence.ai/api-reference/memories/validate-a-memory.md): Validate a memory with a confidence score. - [Validate Memory](https://docs.emergence.ai/api-reference/memories/validate-memory.md) - [Bulk get metadata by FQN](https://docs.emergence.ai/api-reference/metadata/bulk-get-metadata-by-fqn.md): Retrieve multiple metadata entities by FQN. Always returns the latest version. - [Bulk get tags by FQN](https://docs.emergence.ai/api-reference/metadata/bulk-get-tags-by-fqn.md): Retrieve multiple tags by FQN. Always returns the latest non-deleted version. - [Bulk soft-delete metadata](https://docs.emergence.ai/api-reference/metadata/bulk-soft-delete-metadata.md): Soft-delete multiple metadata entities with cascade. - [Bulk soft-delete tags](https://docs.emergence.ai/api-reference/metadata/bulk-soft-delete-tags.md): Soft-delete multiple tags by FQN. Not-found items are non-fatal. - [Bulk store (upsert) metadata](https://docs.emergence.ai/api-reference/metadata/bulk-store-upsert-metadata.md): Create or update multiple metadata entities. Items are sorted by FQN depth so ancestors are processed first. - [Bulk store (upsert) tags](https://docs.emergence.ai/api-reference/metadata/bulk-store-upsert-tags.md): Create or update multiple tags. Parent categories must exist. - [Clear enrichment fields on child entities](https://docs.emergence.ai/api-reference/metadata/clear-enrichment-fields-on-child-entities.md): Clear enrichment fields on all direct children of the given FQN. For a schema FQN: clears description and tags on all tables. For a table FQN: clears description, extension, business_definition, business_rules, enrichment flags, and tags on all columns. - [Create or update a catalog tag](https://docs.emergence.ai/api-reference/metadata/create-or-update-a-catalog-tag.md): Upsert a catalog tag. Parent category must exist and not be deleted. Returns 201 on create, 200 on update. - [Create or update a catalog tag category](https://docs.emergence.ai/api-reference/metadata/create-or-update-a-catalog-tag-category.md): Upsert a catalog tag category. Returns 201 on create, 200 on update. - [Delete a catalog tag](https://docs.emergence.ai/api-reference/metadata/delete-a-catalog-tag.md): Soft-delete a catalog tag. - [Delete a catalog tag category](https://docs.emergence.ai/api-reference/metadata/delete-a-catalog-tag-category.md): Soft-delete a catalog tag category and cascade to child tags. - [Get metadata by FQN](https://docs.emergence.ai/api-reference/metadata/get-metadata-by-fqn.md): Retrieve a metadata asset by fully qualified name. Optionally filter by asset_type or retrieve a specific historical version. - [Get or list catalog tag categories](https://docs.emergence.ai/api-reference/metadata/get-or-list-catalog-tag-categories.md): If 'fqn' is provided, returns a single catalog tag category. Otherwise, returns a paginated list. - [Get or list catalog tags](https://docs.emergence.ai/api-reference/metadata/get-or-list-catalog-tags.md): If 'fqn' is provided, returns a single tag. Otherwise, returns a paginated list. - [List metadata entities](https://docs.emergence.ai/api-reference/metadata/list-metadata-entities.md): Returns a paginated list of metadata entities under the resource, with filtering and sorting. - [List version history for an entity](https://docs.emergence.ai/api-reference/metadata/list-version-history-for-an-entity.md): Returns enriched version history with structured diffs, per-field attribution, and contributor list. - [Soft-delete metadata by FQN](https://docs.emergence.ai/api-reference/metadata/soft-delete-metadata-by-fqn.md): Soft-delete a metadata entity (all versions + cascade) or a single version row. - [Store (upsert) metadata](https://docs.emergence.ai/api-reference/metadata/store-upsert-metadata.md): Create or update a metadata asset. The asset type is determined by the type discriminator field in the request body. - [Get Aggregated Scorecard](https://docs.emergence.ai/api-reference/metrics/get-aggregated-scorecard.md): Returns aggregated metric scores at the requested scope level. - [Get Filter Options](https://docs.emergence.ai/api-reference/metrics/get-filter-options.md): Returns distinct filter values for cascading dashboard dropdowns, scoped by assessment type. - [Get Per-Asset Metric Details](https://docs.emergence.ai/api-reference/metrics/get-per-asset-metric-details.md): Returns per-asset metric detail for drill-down analysis. - [Get Score Trend](https://docs.emergence.ai/api-reference/metrics/get-score-trend.md): Returns score trend over a time range, bucketed by the requested granularity. - [List Dimensions](https://docs.emergence.ai/api-reference/metrics/list-dimensions.md): Returns dimension definitions with their metric definitions. - [Create Model](https://docs.emergence.ai/api-reference/models/create-model.md): Create model - [Delete Model](https://docs.emergence.ai/api-reference/models/delete-model.md): Delete model - [Get Model](https://docs.emergence.ai/api-reference/models/get-model.md): Get model - [Get Model Secret](https://docs.emergence.ai/api-reference/models/get-model-secret.md): Get model secrets - [List Models](https://docs.emergence.ai/api-reference/models/list-models.md): List models in project - [Update Model](https://docs.emergence.ai/api-reference/models/update-model.md): Update model - [Verify Model](https://docs.emergence.ai/api-reference/models/verify-model.md): Verify model credentials and accessibility - [Verify Model Before Save](https://docs.emergence.ai/api-reference/models/verify-model-before-save.md): Verify model credentials before creating the model - [Create a new organization](https://docs.emergence.ai/api-reference/organizations/create-a-new-organization.md): Creates a new organization with Keycloak realm, default groups, and permissions. The organization ID is used as the Keycloak realm ID and must follow realm naming rules (alphanumeric, hyphens, and underscores only). Automatically creates default organization and project groups, and sets up permissio… - [Get organization details](https://docs.emergence.ai/api-reference/organizations/get-organization-details.md): Retrieves detailed information about a specific organization by its ID. The user must have permission to view the organization. Returns organization metadata including name, description, and timestamps. - [Check user permission](https://docs.emergence.ai/api-reference/permissions/check-user-permission.md): Verifies if the authenticated user has permission to perform a specific action on a resource. Returns 200 if allowed, 403 if denied. - [Delete all permissions for a resource](https://docs.emergence.ai/api-reference/permissions/delete-all-permissions-for-a-resource.md): Removes all permission tuples associated with a specific resource. Typically used during resource cleanup or deletion. Returns the count of deleted permissions. - [Grant permission to user or group](https://docs.emergence.ai/api-reference/permissions/grant-permission-to-user-or-group.md): Grants a specific permission relation to a user or group on a resource. Used to assign roles like owner, admin, developer, operator, or viewer. - [List all objects the user can read](https://docs.emergence.ai/api-reference/permissions/list-all-objects-the-user-can-read.md): Returns all object IDs across all resource types that the authenticated user has can_read on. Fans out to OpenFGA internally — callers make one HTTP request instead of one per resource type. - [Revoke permission from user or group](https://docs.emergence.ai/api-reference/permissions/revoke-permission-from-user-or-group.md): Removes a specific permission relation from a user or group on a resource. Used to revoke roles like owner, admin, developer, operator, or viewer. - [Set resource parent relationship](https://docs.emergence.ai/api-reference/permissions/set-resource-parent-relationship.md): Establishes a parent-child relationship between resources for permission inheritance. For example, linking a project to an organization or a secret to a project. - [Create a new project](https://docs.emergence.ai/api-reference/projects/create-a-new-project.md): Creates a new project within the user's organization (determined from JWT claims). The project is automatically linked to the organization and default project groups receive permissions. A UUID will be generated for the project ID unless external_id is provided. - [Delete a project](https://docs.emergence.ai/api-reference/projects/delete-a-project.md): Deletes a project and its project-scoped authorization tuples. - [Get project details](https://docs.emergence.ai/api-reference/projects/get-project-details.md): Retrieves detailed information about a specific project by its ID. The user must have permission to view the project. - [List projects](https://docs.emergence.ai/api-reference/projects/list-projects.md): List all projects in the user's organization with pagination support. - [Root](https://docs.emergence.ai/api-reference/root/root.md) - [Sample Data Endpoint](https://docs.emergence.ai/api-reference/sample/sample-data-endpoint.md) - [Create a new schedule](https://docs.emergence.ai/api-reference/schedules/create-a-new-schedule.md): Creates a new schedule for triggering workflows. The schedule can be either a cron-based recurring schedule or a one-time schedule. When triggered, notifications are published to the specified topic. - [Delete a schedule](https://docs.emergence.ai/api-reference/schedules/delete-a-schedule.md): Permanently deletes a schedule. The schedule must belong to the authenticated user's organization. This action cannot be undone. - [Delete a single schedule run](https://docs.emergence.ai/api-reference/schedules/delete-a-single-schedule-run.md): Deletes a single schedule run by its ID. The run must belong to the authenticated user's organization. - [Disable a schedule](https://docs.emergence.ai/api-reference/schedules/disable-a-schedule.md): Disables a schedule and unschedules it from pg_cron. The schedule must belong to the authenticated user's organization. If the schedule is already disabled, this operation is idempotent. - [Enable a schedule](https://docs.emergence.ai/api-reference/schedules/enable-a-schedule.md): Enables a schedule and registers it with pg_cron. The schedule must belong to the authenticated user's organization. If the schedule is already enabled, this operation is idempotent. - [Get a schedule](https://docs.emergence.ai/api-reference/schedules/get-a-schedule.md): Retrieves a single schedule by its ID. The schedule must belong to the authenticated user's organization. - [Get a single schedule run](https://docs.emergence.ai/api-reference/schedules/get-a-single-schedule-run.md): Retrieves a single schedule run by its ID, including the full schedule snapshot at execution time. The run must belong to the authenticated user's organization. - [List schedule runs](https://docs.emergence.ai/api-reference/schedules/list-schedule-runs.md): Retrieves a paginated list of schedule runs for the authenticated user's organization. Results can be optionally filtered by project ID and ordered by creation time. - [List schedules](https://docs.emergence.ai/api-reference/schedules/list-schedules.md): Retrieves a list of all schedules associated with the authenticated user's organization. If a project ID is provided in the header, the results are filtered to only include schedules for that project. - [Update a schedule](https://docs.emergence.ai/api-reference/schedules/update-a-schedule.md): Updates an existing schedule. All fields in the request body are required - this is a full update. The schedule must belong to the authenticated user's organization. - [Bulk index entities](https://docs.emergence.ai/api-reference/search/bulk-index-entities.md): Add or update one or more entities in the global search index. Each item is validated then published to the internal event stream — embedding generation and indexing happen asynchronously. Returns 202 with the count of accepted operations. - [Bulk remove entities from the index](https://docs.emergence.ai/api-reference/search/bulk-remove-entities-from-the-index.md): Remove one or more entities from the global search index. Each item is validated then published to the internal event stream — deletion happens asynchronously. Returns 202 with the count of accepted operations. - [Global search](https://docs.emergence.ai/api-reference/search/global-search.md): Unified search across all entity types — projects, assets, data connections, catalog entities (databases, schemas, tables, columns), files, artifacts, agents, and models. Results are filtered to entities the authenticated user can access. - [Search metadata across resources](https://docs.emergence.ai/api-reference/search/search-metadata-across-resources.md): Search catalog entities across all resources within a tenant, with filtering, sorting, and pagination. - [Create a new organization secret](https://docs.emergence.ai/api-reference/secrets/create-a-new-organization-secret.md): Creates a new secret at the organization level. The secret is stored securely in Infisical and the creator is automatically granted owner permissions. The secret value should be provided as a JSON string matching the format required by the resource type. - [Create a new project secret](https://docs.emergence.ai/api-reference/secrets/create-a-new-project-secret.md): Creates a new secret at the project level. The secret is stored securely in Infisical and the creator is automatically granted owner permissions. The secret value should be provided as a JSON string matching the format required by the resource type. - [Create a new secret](https://docs.emergence.ai/api-reference/secrets/create-a-new-secret.md): Creates a new secret within a specific resource. The secret is stored securely in Infisical and the creator is automatically granted owner permissions. The secret value should be provided as a JSON string matching the format required by the resource type. - [Delete a project secret](https://docs.emergence.ai/api-reference/secrets/delete-a-project-secret.md): Permanently deletes a project secret from Infisical and removes all associated permissions. Requires delete permissions on the secret. This action cannot be undone. - [Delete a secret](https://docs.emergence.ai/api-reference/secrets/delete-a-secret.md): Permanently deletes a secret from Infisical and removes all associated permissions. Requires delete permissions on the secret. This action cannot be undone. - [Delete an organization secret](https://docs.emergence.ai/api-reference/secrets/delete-an-organization-secret.md): Permanently deletes an organization secret from Infisical and removes all associated permissions. Requires delete permissions on the secret. This action cannot be undone. - [Get organization secret value](https://docs.emergence.ai/api-reference/secrets/get-organization-secret-value.md): Retrieves the actual secret value for a specific organization secret by name. This endpoint returns sensitive data and requires read permissions on the secret. The secret value is returned as stored in Infisical. - [Get project secret value](https://docs.emergence.ai/api-reference/secrets/get-project-secret-value.md): Retrieves the actual secret value for a specific project secret by name. This endpoint returns sensitive data and requires read permissions on the secret. The secret value is returned as stored in Infisical. - [Get secret value](https://docs.emergence.ai/api-reference/secrets/get-secret-value.md): Retrieves the actual secret value for a specific secret by name. This endpoint returns sensitive data and requires read permissions on the secret. The secret value is returned as stored in Infisical. - [List secrets for a project](https://docs.emergence.ai/api-reference/secrets/list-secrets-for-a-project.md): Retrieves a list of all secrets associated with a specific project. Secrets are stored in Infisical and scoped by organization and project. Returns only secret metadata, not the actual secret values. - [List secrets for a resource](https://docs.emergence.ai/api-reference/secrets/list-secrets-for-a-resource.md): Retrieves a list of all secrets associated with a specific resource. Secrets are stored in Infisical and scoped by organization, project, and resource. Returns only secret metadata, not the actual secret values. - [List secrets for an organization](https://docs.emergence.ai/api-reference/secrets/list-secrets-for-an-organization.md): Retrieves a list of all secrets associated with the authenticated user's organization. Secrets are stored in Infisical and scoped by organization. Returns only secret metadata, not the actual secret values. - [Update an existing organization secret](https://docs.emergence.ai/api-reference/secrets/update-an-existing-organization-secret.md): Updates the value or description of an existing organization secret. Requires write permissions on the secret. The secret value and/or description can be updated independently. - [Update an existing project secret](https://docs.emergence.ai/api-reference/secrets/update-an-existing-project-secret.md): Updates the value or description of an existing project secret. Requires write permissions on the secret. The secret value and/or description can be updated independently. - [Update an existing secret](https://docs.emergence.ai/api-reference/secrets/update-an-existing-secret.md): Updates the value or description of an existing secret. Requires write permissions on the secret. The secret value and/or description can be updated independently. - [Service Info](https://docs.emergence.ai/api-reference/service-info.md) - [Service Info](https://docs.emergence.ai/api-reference/service-info-1.md) - [Create a soft FK edge](https://docs.emergence.ai/api-reference/soft-fk-edges/create-a-soft-fk-edge.md): Create a new Soft FK edge within a context pack. - [Expand seed tables via soft FK edges to find junction tables](https://docs.emergence.ai/api-reference/soft-fk-edges/expand-seed-tables-via-soft-fk-edges-to-find-junction-tables.md): BFS expansion to find junction tables connecting seed tables. - [Get a soft FK edge by ID](https://docs.emergence.ai/api-reference/soft-fk-edges/get-a-soft-fk-edge-by-id.md): Get an FK edge by ID. - [List soft FK edges](https://docs.emergence.ai/api-reference/soft-fk-edges/list-soft-fk-edges.md): List soft FK edges within a context pack. - [Soft delete a soft FK edge](https://docs.emergence.ai/api-reference/soft-fk-edges/soft-delete-a-soft-fk-edge.md): Soft delete a soft FK edge. - [Update a soft FK edge](https://docs.emergence.ai/api-reference/soft-fk-edges/update-a-soft-fk-edge.md): Update a soft FK edge's description, confidence, or status. - [Get violation](https://docs.emergence.ai/api-reference/violations/get-violation.md): Get a single violation snapshot by its ID. - [List violation definitions](https://docs.emergence.ai/api-reference/violations/list-violation-definitions.md): List all available violation types and their configurations. - [List violations](https://docs.emergence.ai/api-reference/violations/list-violations.md): List all violation snapshots with optional filtering and pagination. - [Update violation](https://docs.emergence.ai/api-reference/violations/update-violation.md): Update a violation's status (open, resolved, false_positive, acknowledged). - [Cancel All Active Runs](https://docs.emergence.ai/api-reference/workflows/cancel-all-active-runs.md): Cancel all active (queued or running) runs for a configuration. - [Cancel Workflow Run](https://docs.emergence.ai/api-reference/workflows/cancel-workflow-run.md): Cancel a specific workflow run. - [Create Pending Approval](https://docs.emergence.ai/api-reference/workflows/create-pending-approval.md): Create a pending approval record for a completed workflow run. - [Create Workflow Configuration](https://docs.emergence.ai/api-reference/workflows/create-workflow-configuration.md): Create a new workflow configuration with custom settings, schedule, and triggers. - [Create Workflow Definition](https://docs.emergence.ai/api-reference/workflows/create-workflow-definition.md): Create a new workflow definition (template). - [Create Workflow Run](https://docs.emergence.ai/api-reference/workflows/create-workflow-run.md): Trigger a new run of a workflow by configuration ID. - [Get Approval Status](https://docs.emergence.ai/api-reference/workflows/get-approval-status.md): Get the approval status for a workflow run. - [Get Pipeline Run](https://docs.emergence.ai/api-reference/workflows/get-pipeline-run.md): Retrieve the status and progress counters for a run-all-enrichment pipeline run. - [Get Task](https://docs.emergence.ai/api-reference/workflows/get-task.md): Get detailed information about a specific task. - [Get Workflow Configuration](https://docs.emergence.ai/api-reference/workflows/get-workflow-configuration.md): Retrieve detailed information about a specific workflow configuration. - [Get Workflow Definition](https://docs.emergence.ai/api-reference/workflows/get-workflow-definition.md): Retrieve detailed information about a specific workflow definition. - [Get Workflow Run](https://docs.emergence.ai/api-reference/workflows/get-workflow-run.md): Retrieve detailed information about a specific workflow run, including all associated tasks. - [Get Workflow Run Statistics](https://docs.emergence.ai/api-reference/workflows/get-workflow-run-statistics.md): Get statistics for a specific workflow run including task counts and duration. - [Get Workflow Statistics](https://docs.emergence.ai/api-reference/workflows/get-workflow-statistics.md): Get aggregated statistics for workflow runs. - [List All Workflow Runs](https://docs.emergence.ai/api-reference/workflows/list-all-workflow-runs.md): Retrieve a paginated list of workflow runs across all workflows for the current tenant. - [List Tasks](https://docs.emergence.ai/api-reference/workflows/list-tasks.md): List tasks within a workflow run. - [List Workflow Configurations](https://docs.emergence.ai/api-reference/workflows/list-workflow-configurations.md): Retrieve a paginated list of workflow configurations available to the current user. - [List Workflow Definitions](https://docs.emergence.ai/api-reference/workflows/list-workflow-definitions.md): Retrieve a paginated list of workflow definitions (available workflow types). - [Stream Workflow Run Events (SSE)](https://docs.emergence.ai/api-reference/workflows/stream-workflow-run-events-sse.md): Real-time event stream via Server-Sent Events. - [Update Workflow Approval Status](https://docs.emergence.ai/api-reference/workflows/update-workflow-approval-status.md): Update the approval status of a workflow run's output. - [Data Enrichment](https://docs.emergence.ai/data-governance/data-enrichment.md): How the Data Governance solution uses LLMs to enrich metadata with descriptions, classifications, and data quality rule suggestions. - [Data Profiling](https://docs.emergence.ai/data-governance/data-profiling.md): How the Data Governance solution profiles data assets at the column and table level to assess data quality, completeness, and statistical characteristics. - [CRAFT Data Governance Overview](https://docs.emergence.ai/data-governance/overview.md): Automated data profiling, LLM-powered metadata enrichment, data quality rule generation, and scorecard reporting orchestrated by Prefect workflows. - [Workflows](https://docs.emergence.ai/data-governance/workflows.md): How the Data Governance solution uses Prefect for workflow orchestration, including profiling, enrichment, and DQ rule generation workflows. - [Analysis Agent](https://docs.emergence.ai/data-insights/analysis-agent.md): How the Insights Agent performs multi-step analysis with LLM-generated Python code, reasoning loops, and tool orchestration. - [Chat With Data](https://docs.emergence.ai/data-insights/chat-with-data.md): How the CRAFT conversational data analytics pipeline works, from natural-language questions to SQL-generated answers with multi-turn context. - [CRAFT Data Insights Overview](https://docs.emergence.ai/data-insights/overview.md): Multi-agent conversational data analytics using the A2A protocol for natural-language to SQL generation, analysis, and visualization. - [Text-to-SQL](https://docs.emergence.ai/data-insights/text-to-sql.md): How the Text2SQL agent converts natural-language questions into validated, executable SQL using schema-aware generation and sqlglot validation. - [Visualizations](https://docs.emergence.ai/data-insights/visualizations.md): How CRAFT Insights Agent generates interactive Plotly charts from query results to visualize data patterns and trends. - [Helm Configuration](https://docs.emergence.ai/deployment/helm/configuration.md): Configure the em-runtime Helm chart for development, staging, and production environments with external databases, S3 storage, and HTTPS. - [em-core Chart](https://docs.emergence.ai/deployment/helm/em-core.md): Helm chart for deploying the CRAFT core platform — em-platform, em-user-service, em-user-portal, Keycloak, PostgreSQL and Redis. - [em-data-insights Chart](https://docs.emergence.ai/deployment/helm/em-data-insights.md): Helm chart for deploying the CRAFT Data Insights solution — extends em-core with data analysis agents and Redshift integration. - [em-service Chart](https://docs.emergence.ai/deployment/helm/em-service.md): Base Helm chart for deploying any CRAFT service on-premise — deployment, environment variables, secrets, ingress, HPA and probes. - [Upgrades](https://docs.emergence.ai/deployment/helm/upgrades.md): Version upgrade procedures, Helm chart promotion workflow, migration steps, and rollback strategies for the em-runtime platform. - [Values Reference](https://docs.emergence.ai/deployment/helm/values-reference.md): Complete reference for all configurable Helm chart values in the em-runtime chart, including global settings, per-service configuration, and subchart overrides. - [Networking](https://docs.emergence.ai/deployment/infrastructure/networking.md): Configure Gateway API for traffic routing, cert-manager for TLS certificates, and external-dns for automated DNS record management. - [Secrets Infrastructure](https://docs.emergence.ai/deployment/infrastructure/secrets.md): Deploy and configure ESO + GCP Secret Manager or Infisical for secrets management in CRAFT. - [Langfuse](https://docs.emergence.ai/deployment/observability/langfuse.md): Deploy and configure Langfuse for LLM observability in CRAFT, traces, evaluations, and prompt management. - [LLM Observability](https://docs.emergence.ai/deployment/observability/llm-observability.md): Understanding LLM-specific observability for CRAFT, why it differs from infrastructure observability and how Langfuse and OpenTelemetry complement each other. - [OpenTelemetry](https://docs.emergence.ai/deployment/observability/opentelemetry.md): Configure OpenTelemetry for distributed tracing, metrics, and log export across all em-runtime services using the vendor-neutral OTLP protocol. - [CRAFT Deployment Overview](https://docs.emergence.ai/deployment/overview.md): Deploy CRAFT on any Kubernetes cluster using Helm charts and ArgoCD GitOps. Supports GKE, EKS, AKS, and on-premises environments. - [Prerequisites](https://docs.emergence.ai/deployment/prerequisites.md): Infrastructure, networking, database, and access requirements for deploying CRAFT on Kubernetes. - [CRAFT Architecture](https://docs.emergence.ai/getting-started/architecture.md): The 3-layer architecture of CRAFT: Solutions, Platform, and Infrastructure layers with repo mapping and dependency model. - [CRAFT Core Concepts](https://docs.emergence.ai/getting-started/concepts.md): Core concepts of CRAFT: organizations, projects, agents, data connections, schedules, and multi-tenancy. - [Introduction to CRAFT](https://docs.emergence.ai/getting-started/introduction.md): What CRAFT is, the three modules that compose it, and how the platform fits into your stack. - [Backup & Restore](https://docs.emergence.ai/guides/backup-restore.md): How to back up and restore CRAFT data including PostgreSQL databases, Keycloak realms, OpenFGA state, and Infisical secrets. - [Audit Log](https://docs.emergence.ai/guides/customer-admin/audit-log.md): View and export the audit log for your CRAFT organisation — what events are captured and how to use them for compliance. - [Configure SSO](https://docs.emergence.ai/guides/customer-admin/configure-sso.md): Set up single sign-on for your organisation in CRAFT using your existing identity provider. - [Manage Users](https://docs.emergence.ai/guides/customer-admin/manage-users.md): Invite users to your organisation, assign roles, and deactivate accounts in CRAFT. - [Customer Admin Guide](https://docs.emergence.ai/guides/customer-admin/overview.md): What CRAFT org admins can do — and what they cannot — with quick links to each admin task. - [Register Data Connections](https://docs.emergence.ai/guides/customer-admin/register-data-connections.md): Add and manage data sources in CRAFT so your team can ask questions about their data. - [Roles and Permissions](https://docs.emergence.ai/guides/customer-admin/roles-and-permissions.md): Available roles in CRAFT, what each role can do, and how to assign or remove roles via the UI. - [Data Source Setup](https://docs.emergence.ai/guides/data-source-setup.md): How to connect a PostgreSQL database to CRAFT as a data source for querying and governance. - [Register Your First Agent](https://docs.emergence.ai/guides/first-agent.md): Step-by-step tutorial to register, configure, and test your first A2A agent on CRAFT. - [Langfuse Setup](https://docs.emergence.ai/guides/langfuse-setup.md): Step-by-step guide to deploying Langfuse and connecting it to all CRAFT solutions for LLM observability. - [AWS Marketplace](https://docs.emergence.ai/guides/marketplace/aws.md): Deploy CRAFT from the AWS Marketplace using private offers, container products, and EDP committed spend drawdown. - [Azure Marketplace](https://docs.emergence.ai/guides/marketplace/azure.md): Deploy CRAFT from the Azure Marketplace using private offers, CNAB bundles, and MACC committed spend drawdown. - [GCP Marketplace](https://docs.emergence.ai/guides/marketplace/gcp.md): Deploy CRAFT from the Google Cloud Marketplace using private offers, Terraform Kubernetes apps, and integrated billing. - [Memory Integration](https://docs.emergence.ai/guides/memory-integration.md): How-to guide for integrating the Memory Service into your agents, creating, searching, and managing memories via the Platform Utils API. - [RBAC Configuration](https://docs.emergence.ai/guides/rbac-configuration.md): How to set up OpenFGA roles and permissions for fine-grained access control across organizations, projects, and resources. - [Access LLMs](https://docs.emergence.ai/guides/solution-dev/access-llms.md): Call LLMs from your solution through the platform's LiteLLM gateway — provider-agnostic, observable via Langfuse, with project-scoped cost attribution. - [Architecture for Solution Developers](https://docs.emergence.ai/guides/solution-dev/architecture-for-solution-developers.md): The integration surface a solution sees — what the platform provides, what your solution owns, and the contracts between them. - [Authenticate Users](https://docs.emergence.ai/guides/solution-dev/authenticate-users.md): Validate JWTs, use service accounts, and propagate X-Project-ID from your solution's services. - [Local Development](https://docs.emergence.ai/guides/solution-dev/local-development.md): Iterate on your solution locally with hot reload, mocked platform services, and fast feedback before deploying to the cluster. - [Manage Secrets](https://docs.emergence.ai/guides/solution-dev/manage-secrets.md): Retrieve secrets at runtime — environment injection via em-service, file mounts at /mnt/secrets/, and adding new secrets to your chart. - [Solution Developer Guide](https://docs.emergence.ai/guides/solution-dev/overview.md): Build, package, and deploy a new solution on the CRAFT platform — from first FastAPI service to production deployment. - [Package and Deploy](https://docs.emergence.ai/guides/solution-dev/package-and-deploy.md): Wrap a multi-component solution in a Helm chart, manage per-environment overlays, and ship the image to your registry. - [Quickstart: Hello Solution](https://docs.emergence.ai/guides/solution-dev/quickstart.md): Stand up a minimal FastAPI service, package it as a Helm chart wrapping em-service, and deploy it to a local Kind cluster — under 30 minutes. - [Register a New Solution](https://docs.emergence.ai/guides/solution-dev/register-a-solution.md): End-to-end checklist for registering a new solution on the platform — name, namespace, image registry, Helm wiring, database, and platform integration. - [Starter Templates](https://docs.emergence.ai/guides/solution-dev/starter-templates.md): Copy-paste scaffolds for three common solution shapes — minimal API service, multi-component (api + worker + DB), and agentic A2A solution. - [Troubleshooting](https://docs.emergence.ai/guides/solution-dev/troubleshooting.md): Recognise and fix the most common errors encountered when building solutions on CRAFT — auth, secrets, image pulls, helm conflicts, LLM failures. - [Use Shared Storage](https://docs.emergence.ai/guides/solution-dev/use-shared-storage.md): Read and write objects through the platform's infrastructure-agnostic obstore client — works against S3, GCS, Azure Blob, and MinIO. - [SSO Integration](https://docs.emergence.ai/guides/sso-integration.md): How to configure Single Sign-On with Keycloak using OIDC or SAML for enterprise identity providers like Entra ID, Okta, and Google Workspace. - [Agent Registry](https://docs.emergence.ai/platform/agents.md): Unified registry for discovering, managing, and monitoring A2A agents, MCP servers, and agentskills.io skills at enterprise scale. - [Authentication](https://docs.emergence.ai/platform/authentication.md): Keycloak multi-realm OIDC/PKCE authentication with JWT token validation, service accounts, and SSO for CRAFT. - [Authorization](https://docs.emergence.ai/platform/authorization.md): OpenFGA Relationship-Based Access Control (ReBAC) with relationship tuples, computed permissions, hierarchical inheritance, and the require_permission pattern. - [Data Connections](https://docs.emergence.ai/platform/data-connections.md): Manage external data source connections with secure credential storage, connection verification, and fine-grained access control. - [LLM Gateway](https://docs.emergence.ai/platform/llm-gateway.md): Operator guide for the LiteLLM sidecar gateway — model allowlist, rate limits, authentication, and observability - [Context Packs](https://docs.emergence.ai/platform/memory-context-packs.md): Context Packs are the storage containers for agent memories, organizing related memories into retrievable, structured units that agents query for relevant context. - [Memory Service](https://docs.emergence.ai/platform/memory-service.md): Multi-agent memory management for CRAFT, how agents remember and learn from interactions using Context Packs. - [Multi-Tenancy](https://docs.emergence.ai/platform/multi-tenancy.md): Tenant isolation architecture with Keycloak realm separation, org_id scoping, dual authorization, and per-service database partitioning. - [Organizations](https://docs.emergence.ai/platform/organizations.md): Multi-tenant organization management with Keycloak realm isolation, default group provisioning, and OpenFGA permission bootstrapping. - [CRAFT Platform Overview](https://docs.emergence.ai/platform/overview.md): The shared platform layer providing governance, asset management, and utilities with built-in identity, authorization, and secrets management. - [Projects](https://docs.emergence.ai/platform/projects.md): Logical resource groupings within organizations, providing project-level scoping, permission inheritance, and the X-Project-ID header convention. - [Schedules](https://docs.emergence.ai/platform/schedules.md): Scheduled task execution with cron patterns, timezone support, one-off scheduling, pg_cron integration, and run history tracking. - [Service Accounts](https://docs.emergence.ai/platform/service-accounts.md): Service accounts enable background workers and automated processes to authenticate with CRAFT without user interaction. - [Webhooks (Planned)](https://docs.emergence.ai/platform/webhooks.md): Event-driven webhook delivery with HMAC signing, retry logic, and SSRF protection for CRAFT. - [Release Notes](https://docs.emergence.ai/releases/index.md): CRAFT platform changelog. Calendar-versioned monthly releases with curated, user-facing notes. - [SDKs & Client Libraries](https://docs.emergence.ai/sdks/overview.md): Auto-generated Python and TypeScript SDKs for CRAFT APIs - [Python SDK](https://docs.emergence.ai/sdks/python.md): Type-safe Python client for CRAFT APIs - [TypeScript SDK](https://docs.emergence.ai/sdks/typescript.md): Fully typed TypeScript client for CRAFT APIs - [Authentication](https://docs.emergence.ai/security/authentication.md): Deep dive into Keycloak authentication, OIDC flows, JWT token management, and machine-to-machine authentication on CRAFT. - [GDPR Compliance](https://docs.emergence.ai/security/compliance/gdpr.md): How CRAFT supports GDPR compliance with data handling, Right to Be Forgotten, audit logging, and data residency controls. - [HIPAA Compliance](https://docs.emergence.ai/security/compliance/hipaa.md): HIPAA compliance considerations for deploying CRAFT in healthcare environments with PHI data handling requirements. - [SOC 2 Controls](https://docs.emergence.ai/security/compliance/soc2.md): SOC 2 Trust Service Criteria mapping for CRAFT, covering security, availability, processing integrity, confidentiality, and privacy. - [Data Classification](https://docs.emergence.ai/security/data-classification.md): Data classification levels, encryption at rest and in transit, and data handling requirements across CRAFT. - [Network Security](https://docs.emergence.ai/security/network-security.md): Network policies, SSRF protection, TLS configuration, and network segmentation for CRAFT. - [CRAFT Security Overview](https://docs.emergence.ai/security/overview.md): CRAFT security architecture: Keycloak authentication, OpenFGA authorization, secrets management (ESO or Infisical), multi-tenant isolation, and OpenTelemetry observability. - [Secrets Management](https://docs.emergence.ai/security/secrets-management.md): Overview of secrets management options for CRAFT, including ESO + GCP Secret Manager and Infisical as equal deployment alternatives. - [CRAFT Semiconductor Overview](https://docs.emergence.ai/semiconductor/overview.md): Overview of the CRAFT semiconductor fab analytics platform for AI-assisted data analysis, workflow orchestration, and manufacturing insights. ## OpenAPI Specs - [em-talk2data-v2](https://docs.emergence.ai/openapi/em-talk2data-v2.yaml) - [em-semi-v2](https://docs.emergence.ai/openapi/em-semi-v2.yaml) - [em-runtime-utils-v2](https://docs.emergence.ai/openapi/em-runtime-utils-v2.yaml) - [em-runtime-search-v2](https://docs.emergence.ai/openapi/em-runtime-search-v2.yaml) - [em-runtime-governance-v2](https://docs.emergence.ai/openapi/em-runtime-governance-v2.yaml) - [em-runtime-assets-v2](https://docs.emergence.ai/openapi/em-runtime-assets-v2.yaml) - [em-memory-service-v2](https://docs.emergence.ai/openapi/em-memory-service-v2.yaml) - [em-data-readiness-v2](https://docs.emergence.ai/openapi/em-data-readiness-v2.yaml)