mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-22 12:31:57 +02:00
Adds an append-only `activity_event` table fed from the event bus, so the instance agent can be handed what the user has been doing instead of spending a turn discovering it. Entries are pointers — category, verb, and the ids needed to fetch the full record — not copies of the resource. Two decisions worth flagging: `resourceId` carries no foreign key, unlike every other reference in the schema. An entry has to outlive what it describes; a workflow deletion is the entry most worth keeping, and a cascade would erase it exactly when it became interesting. `workflow_review_activity.workflowId` made and undid this same mistake. Neither vocabulary column gets a CHECK, for the reason that table dropped its own: a feed covers more kinds with every feature, and each widening is another SQLite table recreation. The relay registers in `BaseCommand` rather than the instance-ai module. `workflow-post-execute` is emitted wherever the execution ran, which in scaling mode is the worker, and that module loads on main only — registering there would silently lose every execution entry under scaling. Off by default behind `N8N_INSTANCE_AI_ACTIVITY_LOG_ENABLED`; the flag is read once at init, so a disabled instance carries no listeners. Pruning runs on the leader main only, by age with an entry-count backstop. Postgres schema docs are not regenerated — that leg needs Docker, which is unavailable here. The sqlite docs are current.
250 lines
8.4 KiB
Markdown
Generated
250 lines
8.4 KiB
Markdown
Generated
# project
|
|
|
|
## Description
|
|
|
|
<details>
|
|
<summary><strong>Table Definition</strong></summary>
|
|
|
|
```sql
|
|
CREATE TABLE "project" ("id" varchar(36) PRIMARY KEY NOT NULL, "name" varchar(255) NOT NULL, "type" varchar(36) NOT NULL, "createdAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')), "updatedAt" datetime(3) NOT NULL DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')), "icon" text, "description" varchar(512), "creatorId" varchar, "customTelemetryTags" text NOT NULL DEFAULT ('[]'), CONSTRAINT "projects_creatorId_foreign" FOREIGN KEY ("creatorId") REFERENCES "user" ("id") ON DELETE SET NULL ON UPDATE NO ACTION)
|
|
```
|
|
|
|
</details>
|
|
|
|
## Columns
|
|
|
|
| Name | Type | Default | Nullable | Children | Parents | Comment |
|
|
| ---- | ---- | ------- | -------- | -------- | ------- | ------- |
|
|
| createdAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | |
|
|
| creatorId | varchar | | true | | [user](user.md) | |
|
|
| customTelemetryTags | TEXT | '[]' | false | | | |
|
|
| description | varchar(512) | | true | | | |
|
|
| icon | TEXT | | true | | | |
|
|
| id | varchar(36) | | false | [activity_event](activity_event.md) [agent_chat_attachments](agent_chat_attachments.md) [agent_execution_threads](agent_execution_threads.md) [agents](agents.md) [data_table](data_table.md) [folder](folder.md) [git_connection_project](git_connection_project.md) [insights_metadata](insights_metadata.md) [instance_ai_threads](instance_ai_threads.md) [project_relation](project_relation.md) [project_secrets_provider_access](project_secrets_provider_access.md) [role_mapping_rule_project](role_mapping_rule_project.md) [shared_credentials](shared_credentials.md) [shared_workflow](shared_workflow.md) [variables](variables.md) [workflow_review_request](workflow_review_request.md) | | |
|
|
| name | varchar(255) | | false | | | |
|
|
| type | varchar(36) | | false | | | |
|
|
| updatedAt | datetime(3) | STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') | false | | | |
|
|
|
|
## Constraints
|
|
|
|
| Name | Type | Definition |
|
|
| ---- | ---- | ---------- |
|
|
| - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (creatorId) REFERENCES user (id) ON UPDATE NO ACTION ON DELETE SET NULL MATCH NONE |
|
|
| id | PRIMARY KEY | PRIMARY KEY (id) |
|
|
| sqlite_autoindex_project_1 | PRIMARY KEY | PRIMARY KEY (id) |
|
|
|
|
## Indexes
|
|
|
|
| Name | Definition |
|
|
| ---- | ---------- |
|
|
| sqlite_autoindex_project_1 | PRIMARY KEY (id) |
|
|
|
|
## Relations
|
|
|
|
```mermaid
|
|
erDiagram
|
|
|
|
"project" }o--o| "user" : "FOREIGN KEY (creatorId) REFERENCES user (id) ON UPDATE NO ACTION ON DELETE SET NULL MATCH NONE"
|
|
"activity_event" }o--o| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"agent_chat_attachments" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"agent_execution_threads" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"agents" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"data_table" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"folder" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"git_connection_project" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"insights_metadata" }o--o| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE SET NULL MATCH NONE"
|
|
"instance_ai_threads" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"project_relation" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"project_secrets_provider_access" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"role_mapping_rule_project" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"shared_credentials" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"shared_workflow" |o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"variables" }o--o| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
"workflow_review_request" }o--|| "project" : "FOREIGN KEY (projectId) REFERENCES project (id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
|
|
"project" {
|
|
datetime_3_ createdAt
|
|
varchar creatorId FK
|
|
TEXT customTelemetryTags
|
|
varchar_512_ description
|
|
TEXT icon
|
|
varchar_36_ id PK
|
|
varchar_255_ name
|
|
varchar_36_ type
|
|
datetime_3_ updatedAt
|
|
}
|
|
"user" {
|
|
datetime_3_ createdAt
|
|
boolean disabled
|
|
varchar_255_ email
|
|
varchar_32_ firstName
|
|
varchar id PK
|
|
date lastActiveAt
|
|
varchar_32_ lastName
|
|
boolean mfaEnabled
|
|
TEXT mfaRecoveryCodes
|
|
TEXT mfaSecret
|
|
varchar password
|
|
TEXT personalizationAnswers
|
|
varchar_128_ roleSlug FK
|
|
TEXT settings
|
|
datetime_3_ updatedAt
|
|
}
|
|
"activity_event" {
|
|
varchar_64_ action
|
|
varchar_32_ category
|
|
datetime_3_ createdAt
|
|
TEXT data
|
|
INTEGER id
|
|
varchar_36_ projectId FK
|
|
varchar_36_ resourceId
|
|
TEXT resourceName
|
|
varchar_32_ resourceType
|
|
INTEGER typeVersion
|
|
varchar userId FK
|
|
}
|
|
"agent_chat_attachments" {
|
|
varchar_36_ agentId FK
|
|
TEXT binaryDataId
|
|
datetime_3_ createdAt
|
|
varchar_255_ fileName
|
|
INTEGER fileSizeBytes
|
|
varchar_16_ id PK
|
|
varchar_255_ mimeType
|
|
varchar_36_ projectId FK
|
|
varchar_255_ resourceId
|
|
varchar_32_ source
|
|
varchar_128_ threadId
|
|
datetime_3_ updatedAt
|
|
}
|
|
"agent_execution_threads" {
|
|
varchar_36_ agentId FK
|
|
varchar_255_ agentName
|
|
datetime_3_ createdAt
|
|
varchar_8_ emoji
|
|
varchar_128_ id PK
|
|
varchar_36_ parentAgentId
|
|
varchar_128_ parentThreadId
|
|
varchar_255_ projectId FK
|
|
INTEGER sessionNumber
|
|
varchar_32_ taskId
|
|
varchar_36_ taskVersionId FK
|
|
varchar_255_ title
|
|
INTEGER totalCompletionTokens
|
|
REAL totalCost
|
|
INTEGER totalDuration
|
|
INTEGER totalPromptTokens
|
|
datetime_3_ updatedAt
|
|
}
|
|
"agents" {
|
|
varchar_36_ activeVersionId FK
|
|
boolean availableInMCP
|
|
datetime_3_ createdAt
|
|
varchar_36_ id PK
|
|
TEXT integrations
|
|
varchar_128_ name
|
|
varchar_255_ projectId FK
|
|
INTEGER revision
|
|
TEXT schema
|
|
datetime_3_ setupCompletedAt
|
|
TEXT skills
|
|
TEXT tools
|
|
datetime_3_ updatedAt
|
|
varchar_36_ versionId
|
|
}
|
|
"data_table" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ id PK
|
|
varchar_128_ name
|
|
varchar_36_ projectId FK
|
|
datetime_3_ updatedAt
|
|
}
|
|
"folder" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ id PK
|
|
varchar_128_ name
|
|
varchar_36_ parentFolderId FK
|
|
varchar_36_ projectId FK
|
|
datetime_3_ updatedAt
|
|
}
|
|
"git_connection_project" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ gitConnectionId FK
|
|
varchar_36_ projectId PK
|
|
datetime_3_ updatedAt
|
|
}
|
|
"insights_metadata" {
|
|
INTEGER metaId
|
|
varchar_36_ projectId FK
|
|
varchar_255_ projectName
|
|
varchar_16_ workflowId FK
|
|
varchar_128_ workflowName
|
|
}
|
|
"instance_ai_threads" {
|
|
datetime_3_ createdAt
|
|
varchar id PK
|
|
TEXT metadata
|
|
varchar_36_ projectId FK
|
|
varchar_255_ resourceId
|
|
TEXT title
|
|
datetime_3_ updatedAt
|
|
}
|
|
"project_relation" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ projectId PK
|
|
varchar role FK
|
|
datetime_3_ updatedAt
|
|
varchar userId PK
|
|
}
|
|
"project_secrets_provider_access" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ projectId PK
|
|
varchar_128_ role
|
|
INTEGER secretsProviderConnectionId PK
|
|
datetime_3_ updatedAt
|
|
}
|
|
"role_mapping_rule_project" {
|
|
varchar_36_ projectId PK
|
|
varchar_16_ roleMappingRuleId PK
|
|
}
|
|
"shared_credentials" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ credentialsId PK
|
|
varchar_36_ projectId PK
|
|
TEXT role
|
|
datetime_3_ updatedAt
|
|
}
|
|
"shared_workflow" {
|
|
datetime_3_ createdAt
|
|
varchar_36_ projectId PK
|
|
TEXT role
|
|
datetime_3_ updatedAt
|
|
varchar_36_ workflowId PK
|
|
}
|
|
"variables" {
|
|
varchar_36_ id PK
|
|
TEXT key
|
|
varchar_36_ projectId FK
|
|
TEXT type
|
|
TEXT value
|
|
}
|
|
"workflow_review_request" {
|
|
datetime_3_ approvedAt
|
|
varchar closedById FK
|
|
datetime_3_ createdAt
|
|
varchar createdById FK
|
|
varchar_50_ decision
|
|
TEXT description
|
|
varchar_36_ id PK
|
|
varchar_36_ projectId FK
|
|
varchar_16_ state
|
|
varchar_255_ title
|
|
datetime_3_ updatedAt
|
|
varchar updatedById FK
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
> Generated by [tbls](https://github.com/k1LoW/tbls)
|