@revealui/db 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/dist/audit-store.d.ts.map +1 -1
- package/dist/audit-store.js +1 -1
- package/dist/audit-store.js.map +1 -1
- package/dist/cleanup/cross-db-cleanup.d.ts +63 -0
- package/dist/cleanup/cross-db-cleanup.d.ts.map +1 -0
- package/dist/cleanup/cross-db-cleanup.js +150 -0
- package/dist/cleanup/cross-db-cleanup.js.map +1 -0
- package/dist/cleanup/index.d.ts +10 -0
- package/dist/cleanup/index.d.ts.map +1 -0
- package/dist/cleanup/index.js +10 -0
- package/dist/cleanup/index.js.map +1 -0
- package/dist/cleanup/stale-tokens.d.ts +37 -0
- package/dist/cleanup/stale-tokens.d.ts.map +1 -0
- package/dist/cleanup/stale-tokens.js +113 -0
- package/dist/cleanup/stale-tokens.js.map +1 -0
- package/dist/client/index.d.ts +13 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +46 -7
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +6 -0
- package/dist/crypto.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/log-transport.d.ts.map +1 -1
- package/dist/log-transport.js +3 -1
- package/dist/log-transport.js.map +1 -1
- package/dist/pool.d.ts +1 -4
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +29 -13
- package/dist/pool.js.map +1 -1
- package/dist/queries/boards.d.ts +13 -1
- package/dist/queries/boards.d.ts.map +1 -1
- package/dist/queries/boards.js +5 -2
- package/dist/queries/boards.js.map +1 -1
- package/dist/queries/code-provenance.d.ts +2 -0
- package/dist/queries/code-provenance.d.ts.map +1 -1
- package/dist/queries/code-provenance.js +8 -2
- package/dist/queries/code-provenance.js.map +1 -1
- package/dist/queries/media.d.ts +84 -0
- package/dist/queries/media.d.ts.map +1 -0
- package/dist/queries/media.js +47 -0
- package/dist/queries/media.js.map +1 -0
- package/dist/queries/optimized-queries.js +1 -1
- package/dist/queries/optimized-queries.js.map +1 -1
- package/dist/queries/pages.d.ts +119 -0
- package/dist/queries/pages.d.ts.map +1 -0
- package/dist/queries/pages.js +61 -0
- package/dist/queries/pages.js.map +1 -0
- package/dist/queries/posts.d.ts +107 -0
- package/dist/queries/posts.d.ts.map +1 -0
- package/dist/queries/posts.js +55 -0
- package/dist/queries/posts.js.map +1 -0
- package/dist/queries/sites.d.ts +127 -0
- package/dist/queries/sites.d.ts.map +1 -0
- package/dist/queries/sites.js +83 -0
- package/dist/queries/sites.js.map +1 -0
- package/dist/queries/ticket-comments.d.ts +9 -1
- package/dist/queries/ticket-comments.d.ts.map +1 -1
- package/dist/queries/ticket-comments.js +4 -0
- package/dist/queries/ticket-comments.js.map +1 -1
- package/dist/queries/ticket-labels.d.ts +10 -0
- package/dist/queries/ticket-labels.d.ts.map +1 -1
- package/dist/queries/ticket-labels.js +4 -0
- package/dist/queries/ticket-labels.js.map +1 -1
- package/dist/queries/tickets.d.ts +1 -1
- package/dist/queries/tickets.d.ts.map +1 -1
- package/dist/queries/tickets.js +4 -7
- package/dist/queries/tickets.js.map +1 -1
- package/dist/queries/users.d.ts +109 -0
- package/dist/queries/users.d.ts.map +1 -0
- package/dist/queries/users.js +44 -0
- package/dist/queries/users.js.map +1 -0
- package/dist/schema/accounts.d.ts +962 -0
- package/dist/schema/accounts.d.ts.map +1 -0
- package/dist/schema/accounts.js +115 -0
- package/dist/schema/accounts.js.map +1 -0
- package/dist/schema/agents.d.ts +167 -3
- package/dist/schema/agents.d.ts.map +1 -1
- package/dist/schema/agents.js +58 -7
- package/dist/schema/agents.js.map +1 -1
- package/dist/schema/api-keys.d.ts +17 -0
- package/dist/schema/api-keys.d.ts.map +1 -1
- package/dist/schema/api-keys.js +3 -0
- package/dist/schema/api-keys.js.map +1 -1
- package/dist/schema/app-logs.d.ts.map +1 -1
- package/dist/schema/app-logs.js.map +1 -1
- package/dist/schema/audit-log.d.ts.map +1 -1
- package/dist/schema/audit-log.js.map +1 -1
- package/dist/schema/cms.d.ts +68 -0
- package/dist/schema/cms.d.ts.map +1 -1
- package/dist/schema/cms.js +18 -4
- package/dist/schema/cms.js.map +1 -1
- package/dist/schema/code-provenance.d.ts.map +1 -1
- package/dist/schema/code-provenance.js.map +1 -1
- package/dist/schema/collab-edits.d.ts.map +1 -1
- package/dist/schema/collab-edits.js +2 -2
- package/dist/schema/collab-edits.js.map +1 -1
- package/dist/schema/coordination.d.ts +967 -0
- package/dist/schema/coordination.d.ts.map +1 -0
- package/dist/schema/coordination.js +109 -0
- package/dist/schema/coordination.js.map +1 -0
- package/dist/schema/crdt-operations.d.ts.map +1 -1
- package/dist/schema/crdt-operations.js.map +1 -1
- package/dist/schema/error-events.d.ts.map +1 -1
- package/dist/schema/error-events.js.map +1 -1
- package/dist/schema/gdpr.d.ts +529 -0
- package/dist/schema/gdpr.d.ts.map +1 -0
- package/dist/schema/gdpr.js +93 -0
- package/dist/schema/gdpr.js.map +1 -0
- package/dist/schema/index.d.ts +41 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +82 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/jobs.d.ts +242 -0
- package/dist/schema/jobs.d.ts.map +1 -0
- package/dist/schema/jobs.js +48 -0
- package/dist/schema/jobs.js.map +1 -0
- package/dist/schema/licenses.d.ts +51 -0
- package/dist/schema/licenses.d.ts.map +1 -1
- package/dist/schema/licenses.js +12 -3
- package/dist/schema/licenses.js.map +1 -1
- package/dist/schema/magic-links.d.ts +136 -0
- package/dist/schema/magic-links.d.ts.map +1 -0
- package/dist/schema/magic-links.js +32 -0
- package/dist/schema/magic-links.js.map +1 -0
- package/dist/schema/marketplace.d.ts +496 -0
- package/dist/schema/marketplace.d.ts.map +1 -0
- package/dist/schema/marketplace.js +110 -0
- package/dist/schema/marketplace.js.map +1 -0
- package/dist/schema/node-ids.d.ts.map +1 -1
- package/dist/schema/node-ids.js.map +1 -1
- package/dist/schema/oauth-accounts.d.ts +205 -0
- package/dist/schema/oauth-accounts.d.ts.map +1 -0
- package/dist/schema/oauth-accounts.js +35 -0
- package/dist/schema/oauth-accounts.js.map +1 -0
- package/dist/schema/pages.d.ts +34 -0
- package/dist/schema/pages.d.ts.map +1 -1
- package/dist/schema/pages.js +14 -4
- package/dist/schema/pages.js.map +1 -1
- package/dist/schema/passkeys.d.ts +208 -0
- package/dist/schema/passkeys.d.ts.map +1 -0
- package/dist/schema/passkeys.js +47 -0
- package/dist/schema/passkeys.js.map +1 -0
- package/dist/schema/password-reset-tokens.d.ts.map +1 -1
- package/dist/schema/password-reset-tokens.js +5 -2
- package/dist/schema/password-reset-tokens.js.map +1 -1
- package/dist/schema/rag.d.ts +566 -0
- package/dist/schema/rag.d.ts.map +1 -0
- package/dist/schema/rag.js +85 -0
- package/dist/schema/rag.js.map +1 -0
- package/dist/schema/rate-limits.d.ts.map +1 -1
- package/dist/schema/rate-limits.js +5 -2
- package/dist/schema/rate-limits.js.map +1 -1
- package/dist/schema/rest.d.ts +11 -2
- package/dist/schema/rest.d.ts.map +1 -1
- package/dist/schema/rest.js +11 -2
- package/dist/schema/rest.js.map +1 -1
- package/dist/schema/sites.d.ts +34 -0
- package/dist/schema/sites.d.ts.map +1 -1
- package/dist/schema/sites.js +15 -3
- package/dist/schema/sites.js.map +1 -1
- package/dist/schema/tenants.d.ts +188 -0
- package/dist/schema/tenants.d.ts.map +1 -0
- package/dist/schema/tenants.js +15 -0
- package/dist/schema/tenants.js.map +1 -0
- package/dist/schema/tickets.d.ts.map +1 -1
- package/dist/schema/tickets.js +17 -5
- package/dist/schema/tickets.js.map +1 -1
- package/dist/schema/users.d.ts +259 -0
- package/dist/schema/users.d.ts.map +1 -1
- package/dist/schema/users.js +39 -3
- package/dist/schema/users.js.map +1 -1
- package/dist/schema/vector.d.ts +1 -0
- package/dist/schema/vector.d.ts.map +1 -1
- package/dist/schema/vector.js +2 -0
- package/dist/schema/vector.js.map +1 -1
- package/dist/schema/waitlist.d.ts.map +1 -1
- package/dist/schema/waitlist.js.map +1 -1
- package/dist/schema/webhook-events.d.ts +68 -0
- package/dist/schema/webhook-events.d.ts.map +1 -0
- package/dist/schema/webhook-events.js +17 -0
- package/dist/schema/webhook-events.js.map +1 -0
- package/dist/schema/yjs-documents.d.ts.map +1 -1
- package/dist/schema/yjs-documents.js.map +1 -1
- package/dist/scripts/cleanup-expired.d.ts +12 -0
- package/dist/scripts/cleanup-expired.d.ts.map +1 -0
- package/dist/scripts/cleanup-expired.js +50 -0
- package/dist/scripts/cleanup-expired.js.map +1 -0
- package/dist/security-audit-storage.d.ts +54 -0
- package/dist/security-audit-storage.d.ts.map +1 -0
- package/dist/security-audit-storage.js +100 -0
- package/dist/security-audit-storage.js.map +1 -0
- package/dist/types/database.d.ts +381 -2
- package/dist/types/database.d.ts.map +1 -1
- package/dist/types/database.js +78 -1
- package/dist/types/database.js.map +1 -1
- package/dist/types/discover.d.ts +2 -2
- package/dist/types/discover.d.ts.map +1 -1
- package/dist/types/discover.js +16 -16
- package/dist/types/discover.js.map +1 -1
- package/dist/types/extract-relationships.d.ts.map +1 -1
- package/dist/types/extract-relationships.js.map +1 -1
- package/dist/types/generate-contracts.js.map +1 -1
- package/dist/types/generate-zod-schemas.js.map +1 -1
- package/dist/types/generate.js.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/introspect.d.ts.map +1 -1
- package/dist/types/introspect.js +0 -1
- package/dist/types/introspect.js.map +1 -1
- package/dist/types/stripe-schema.d.ts.map +1 -1
- package/dist/types/stripe-schema.js +7 -2
- package/dist/types/stripe-schema.js.map +1 -1
- package/dist/utils/soft-delete.d.ts +45 -0
- package/dist/utils/soft-delete.d.ts.map +1 -0
- package/dist/utils/soft-delete.js +45 -0
- package/dist/utils/soft-delete.js.map +1 -0
- package/dist/validation/cross-db.d.ts +60 -0
- package/dist/validation/cross-db.d.ts.map +1 -0
- package/dist/validation/cross-db.js +146 -0
- package/dist/validation/cross-db.js.map +1 -0
- package/package.json +45 -6
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Tables for storing rate limiting and brute force protection data.
|
|
5
5
|
* Used by the storage abstraction for distributed rate limiting.
|
|
6
6
|
*/
|
|
7
|
-
import { integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
|
|
7
|
+
import { index, integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
|
|
8
8
|
// =============================================================================
|
|
9
9
|
// Rate Limits Table
|
|
10
10
|
// =============================================================================
|
|
@@ -18,7 +18,10 @@ export const rateLimits = pgTable('rate_limits', {
|
|
|
18
18
|
// Timestamps
|
|
19
19
|
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
20
20
|
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
21
|
-
})
|
|
21
|
+
}, (table) => [
|
|
22
|
+
// R5-H6: Index for cleanup queries that scan by expiry
|
|
23
|
+
index('rate_limits_reset_at_idx').on(table.resetAt),
|
|
24
|
+
]);
|
|
22
25
|
// =============================================================================
|
|
23
26
|
// Failed Attempts Table
|
|
24
27
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limits.js","sourceRoot":"","sources":["../../src/schema/rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"rate-limits.js","sourceRoot":"","sources":["../../src/schema/rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/E,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAC/B,aAAa,EACb;IACE,0DAA0D;IAC1D,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;IAE7B,mDAAmD;IACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAE9B,sDAAsD;IACtD,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEhE,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,uDAAuD;IACvD,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;CACpD,CACF,CAAC;AAEF,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACvD,8BAA8B;IAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;IAEjC,uBAAuB;IACvB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,4BAA4B;IAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE1D,yBAAyB;IACzB,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAExE,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,CAAC,CAAC"}
|
package/dist/schema/rest.d.ts
CHANGED
|
@@ -8,24 +8,33 @@
|
|
|
8
8
|
* - Media, posts, metadata
|
|
9
9
|
* - Agent contexts, conversations, actions (but NOT agent_memories)
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export * from './accounts.js';
|
|
12
|
+
export { type AgentAction, type AgentContext, type AgentTaskUsage, type AiMemorySession, agentActions, agentContexts, agentTaskUsage, aiMemorySessions, type Conversation, conversations, messages, type NewAgentAction, type NewAgentContext, type NewAgentTaskUsage, type NewAiMemorySession, type NewConversation, type NewRegisteredAgent, type RegisteredAgent, registeredAgents, syncMetadata, userDevices, } from './agents.js';
|
|
12
13
|
export * from './api-keys.js';
|
|
13
14
|
export * from './app-logs.js';
|
|
14
15
|
export * from './audit-log.js';
|
|
15
16
|
export * from './cms.js';
|
|
16
17
|
export * from './code-provenance.js';
|
|
17
18
|
export * from './collab-edits.js';
|
|
19
|
+
export * from './coordination.js';
|
|
18
20
|
export * from './crdt-operations.js';
|
|
19
21
|
export * from './error-events.js';
|
|
22
|
+
export * from './gdpr.js';
|
|
23
|
+
export * from './jobs.js';
|
|
20
24
|
export * from './licenses.js';
|
|
25
|
+
export * from './magic-links.js';
|
|
26
|
+
export * from './marketplace.js';
|
|
21
27
|
export * from './node-ids.js';
|
|
28
|
+
export * from './oauth-accounts.js';
|
|
22
29
|
export * from './pages.js';
|
|
30
|
+
export * from './passkeys.js';
|
|
23
31
|
export * from './password-reset-tokens.js';
|
|
24
|
-
export * from './query.js';
|
|
25
32
|
export * from './rate-limits.js';
|
|
26
33
|
export * from './sites.js';
|
|
34
|
+
export * from './tenants.js';
|
|
27
35
|
export * from './tickets.js';
|
|
28
36
|
export * from './users.js';
|
|
29
37
|
export * from './waitlist.js';
|
|
38
|
+
export * from './webhook-events.js';
|
|
30
39
|
export * from './yjs-documents.js';
|
|
31
40
|
//# sourceMappingURL=rest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,YAAY,EACZ,aAAa,EACb,KAAK,YAAY,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,YAAY,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
package/dist/schema/rest.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
// Export agent schemas except agentMemories
|
|
12
12
|
// Note: AgentMemory types are exported from './vector.js' instead
|
|
13
|
-
export
|
|
13
|
+
export * from './accounts.js';
|
|
14
|
+
export { agentActions, agentContexts, agentTaskUsage, aiMemorySessions, conversations, messages, registeredAgents, syncMetadata, userDevices, } from './agents.js';
|
|
14
15
|
export * from './api-keys.js';
|
|
15
16
|
export * from './app-logs.js';
|
|
16
17
|
export * from './audit-log.js';
|
|
@@ -18,18 +19,26 @@ export * from './audit-log.js';
|
|
|
18
19
|
export * from './cms.js';
|
|
19
20
|
export * from './code-provenance.js';
|
|
20
21
|
export * from './collab-edits.js';
|
|
22
|
+
export * from './coordination.js';
|
|
21
23
|
export * from './crdt-operations.js';
|
|
22
24
|
export * from './error-events.js';
|
|
25
|
+
export * from './gdpr.js';
|
|
26
|
+
export * from './jobs.js';
|
|
23
27
|
export * from './licenses.js';
|
|
28
|
+
export * from './magic-links.js';
|
|
29
|
+
export * from './marketplace.js';
|
|
24
30
|
export * from './node-ids.js';
|
|
31
|
+
export * from './oauth-accounts.js';
|
|
25
32
|
export * from './pages.js';
|
|
33
|
+
export * from './passkeys.js';
|
|
26
34
|
export * from './password-reset-tokens.js';
|
|
27
|
-
export * from './query.js';
|
|
28
35
|
export * from './rate-limits.js';
|
|
29
36
|
export * from './sites.js';
|
|
37
|
+
export * from './tenants.js';
|
|
30
38
|
export * from './tickets.js';
|
|
31
39
|
export * from './users.js';
|
|
32
40
|
export * from './waitlist.js';
|
|
41
|
+
export * from './webhook-events.js';
|
|
33
42
|
export * from './yjs-documents.js';
|
|
34
43
|
// Note: Relations are defined in index.ts to avoid circular dependencies
|
|
35
44
|
// They reference agentMemories which is in vector.ts, so we don't export them here
|
package/dist/schema/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,kEAAkE;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/schema/rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,kEAAkE;AAClE,cAAc,eAAe,CAAC;AAC9B,OAAO,EAKL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAEhB,aAAa,EACb,QAAQ,EAQR,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,yEAAyE;AACzE,mFAAmF;AACnF,2DAA2D"}
|
package/dist/schema/sites.d.ts
CHANGED
|
@@ -42,6 +42,23 @@ export declare const sites: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
42
42
|
identity: undefined;
|
|
43
43
|
generated: undefined;
|
|
44
44
|
}, {}, {}>;
|
|
45
|
+
version: import("drizzle-orm/pg-core").PgColumn<{
|
|
46
|
+
name: "version";
|
|
47
|
+
tableName: "sites";
|
|
48
|
+
dataType: "number";
|
|
49
|
+
columnType: "PgInteger";
|
|
50
|
+
data: number;
|
|
51
|
+
driverParam: string | number;
|
|
52
|
+
notNull: true;
|
|
53
|
+
hasDefault: true;
|
|
54
|
+
isPrimaryKey: false;
|
|
55
|
+
isAutoincrement: false;
|
|
56
|
+
hasRuntimeDefault: false;
|
|
57
|
+
enumValues: undefined;
|
|
58
|
+
baseColumn: never;
|
|
59
|
+
identity: undefined;
|
|
60
|
+
generated: undefined;
|
|
61
|
+
}, {}, {}>;
|
|
45
62
|
ownerId: import("drizzle-orm/pg-core").PgColumn<{
|
|
46
63
|
name: "owner_id";
|
|
47
64
|
tableName: "sites";
|
|
@@ -246,6 +263,23 @@ export declare const sites: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
246
263
|
identity: undefined;
|
|
247
264
|
generated: undefined;
|
|
248
265
|
}, {}, {}>;
|
|
266
|
+
deletedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
267
|
+
name: "deleted_at";
|
|
268
|
+
tableName: "sites";
|
|
269
|
+
dataType: "date";
|
|
270
|
+
columnType: "PgTimestamp";
|
|
271
|
+
data: Date;
|
|
272
|
+
driverParam: string;
|
|
273
|
+
notNull: false;
|
|
274
|
+
hasDefault: false;
|
|
275
|
+
isPrimaryKey: false;
|
|
276
|
+
isAutoincrement: false;
|
|
277
|
+
hasRuntimeDefault: false;
|
|
278
|
+
enumValues: undefined;
|
|
279
|
+
baseColumn: never;
|
|
280
|
+
identity: undefined;
|
|
281
|
+
generated: undefined;
|
|
282
|
+
}, {}, {}>;
|
|
249
283
|
};
|
|
250
284
|
dialect: "pg";
|
|
251
285
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDjB,CAAC;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB5B,CAAC;AAMH,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC"}
|
package/dist/schema/sites.js
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* These tables store site configurations and collaborator relationships.
|
|
5
5
|
* The schema structure mirrors the Zod schemas in @revealui/contracts/entities.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { sql } from 'drizzle-orm';
|
|
8
|
+
import { index, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
|
|
8
9
|
import { users } from './users.js';
|
|
9
10
|
// =============================================================================
|
|
10
11
|
// Sites Table
|
|
@@ -14,13 +15,15 @@ export const sites = pgTable('sites', {
|
|
|
14
15
|
id: text('id').primaryKey(),
|
|
15
16
|
// Schema versioning for migrations
|
|
16
17
|
schemaVersion: text('schema_version').notNull().default('1'),
|
|
18
|
+
// Optimistic locking — incremented on each update, checked to detect concurrent edits
|
|
19
|
+
version: integer('version').notNull().default(1),
|
|
17
20
|
// Ownership
|
|
18
21
|
ownerId: text('owner_id')
|
|
19
22
|
.notNull()
|
|
20
23
|
.references(() => users.id, { onDelete: 'cascade' }),
|
|
21
24
|
// Basic info
|
|
22
25
|
name: text('name').notNull(),
|
|
23
|
-
slug: text('slug').notNull(),
|
|
26
|
+
slug: text('slug').notNull().unique(),
|
|
24
27
|
description: text('description'),
|
|
25
28
|
// Status: draft, published, archived
|
|
26
29
|
status: text('status').notNull().default('draft'),
|
|
@@ -36,7 +39,16 @@ export const sites = pgTable('sites', {
|
|
|
36
39
|
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
37
40
|
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
38
41
|
publishedAt: timestamp('published_at', { withTimezone: true }),
|
|
39
|
-
|
|
42
|
+
// Soft-delete: null = active, timestamp = when deleted
|
|
43
|
+
deletedAt: timestamp('deleted_at', { withTimezone: true }),
|
|
44
|
+
}, (table) => [
|
|
45
|
+
index('sites_deleted_at_idx').on(table.deletedAt),
|
|
46
|
+
index('sites_status_deleted_at_idx').on(table.status, table.deletedAt),
|
|
47
|
+
index('sites_active_slug_idx').on(table.slug).where(sql `deleted_at IS NULL`),
|
|
48
|
+
index('sites_active_owner_id_idx').on(table.ownerId).where(sql `deleted_at IS NULL`),
|
|
49
|
+
index('sites_active_status_idx').on(table.status).where(sql `deleted_at IS NULL`),
|
|
50
|
+
index('sites_owner_id_idx').on(table.ownerId),
|
|
51
|
+
]);
|
|
40
52
|
// =============================================================================
|
|
41
53
|
// Site Collaborators Table (Many-to-Many: Sites <-> Users)
|
|
42
54
|
// =============================================================================
|
package/dist/schema/sites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/schema/sites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
export declare const tenants: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2
|
+
name: "tenants";
|
|
3
|
+
schema: undefined;
|
|
4
|
+
columns: {
|
|
5
|
+
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
6
|
+
name: "id";
|
|
7
|
+
tableName: "tenants";
|
|
8
|
+
dataType: "string";
|
|
9
|
+
columnType: "PgText";
|
|
10
|
+
data: string;
|
|
11
|
+
driverParam: string;
|
|
12
|
+
notNull: true;
|
|
13
|
+
hasDefault: false;
|
|
14
|
+
isPrimaryKey: true;
|
|
15
|
+
isAutoincrement: false;
|
|
16
|
+
hasRuntimeDefault: false;
|
|
17
|
+
enumValues: [string, ...string[]];
|
|
18
|
+
baseColumn: never;
|
|
19
|
+
identity: undefined;
|
|
20
|
+
generated: undefined;
|
|
21
|
+
}, {}, {}>;
|
|
22
|
+
schemaVersion: import("drizzle-orm/pg-core").PgColumn<{
|
|
23
|
+
name: "schema_version";
|
|
24
|
+
tableName: "tenants";
|
|
25
|
+
dataType: "string";
|
|
26
|
+
columnType: "PgText";
|
|
27
|
+
data: string;
|
|
28
|
+
driverParam: string;
|
|
29
|
+
notNull: true;
|
|
30
|
+
hasDefault: true;
|
|
31
|
+
isPrimaryKey: false;
|
|
32
|
+
isAutoincrement: false;
|
|
33
|
+
hasRuntimeDefault: false;
|
|
34
|
+
enumValues: [string, ...string[]];
|
|
35
|
+
baseColumn: never;
|
|
36
|
+
identity: undefined;
|
|
37
|
+
generated: undefined;
|
|
38
|
+
}, {}, {}>;
|
|
39
|
+
name: import("drizzle-orm/pg-core").PgColumn<{
|
|
40
|
+
name: "name";
|
|
41
|
+
tableName: "tenants";
|
|
42
|
+
dataType: "string";
|
|
43
|
+
columnType: "PgText";
|
|
44
|
+
data: string;
|
|
45
|
+
driverParam: string;
|
|
46
|
+
notNull: true;
|
|
47
|
+
hasDefault: false;
|
|
48
|
+
isPrimaryKey: false;
|
|
49
|
+
isAutoincrement: false;
|
|
50
|
+
hasRuntimeDefault: false;
|
|
51
|
+
enumValues: [string, ...string[]];
|
|
52
|
+
baseColumn: never;
|
|
53
|
+
identity: undefined;
|
|
54
|
+
generated: undefined;
|
|
55
|
+
}, {}, {}>;
|
|
56
|
+
email: import("drizzle-orm/pg-core").PgColumn<{
|
|
57
|
+
name: "email";
|
|
58
|
+
tableName: "tenants";
|
|
59
|
+
dataType: "string";
|
|
60
|
+
columnType: "PgText";
|
|
61
|
+
data: string;
|
|
62
|
+
driverParam: string;
|
|
63
|
+
notNull: true;
|
|
64
|
+
hasDefault: false;
|
|
65
|
+
isPrimaryKey: false;
|
|
66
|
+
isAutoincrement: false;
|
|
67
|
+
hasRuntimeDefault: false;
|
|
68
|
+
enumValues: [string, ...string[]];
|
|
69
|
+
baseColumn: never;
|
|
70
|
+
identity: undefined;
|
|
71
|
+
generated: undefined;
|
|
72
|
+
}, {}, {}>;
|
|
73
|
+
password: import("drizzle-orm/pg-core").PgColumn<{
|
|
74
|
+
name: "password";
|
|
75
|
+
tableName: "tenants";
|
|
76
|
+
dataType: "string";
|
|
77
|
+
columnType: "PgText";
|
|
78
|
+
data: string;
|
|
79
|
+
driverParam: string;
|
|
80
|
+
notNull: false;
|
|
81
|
+
hasDefault: false;
|
|
82
|
+
isPrimaryKey: false;
|
|
83
|
+
isAutoincrement: false;
|
|
84
|
+
hasRuntimeDefault: false;
|
|
85
|
+
enumValues: [string, ...string[]];
|
|
86
|
+
baseColumn: never;
|
|
87
|
+
identity: undefined;
|
|
88
|
+
generated: undefined;
|
|
89
|
+
}, {}, {}>;
|
|
90
|
+
roles: import("drizzle-orm/pg-core").PgColumn<{
|
|
91
|
+
name: "roles";
|
|
92
|
+
tableName: "tenants";
|
|
93
|
+
dataType: "json";
|
|
94
|
+
columnType: "PgJsonb";
|
|
95
|
+
data: string[];
|
|
96
|
+
driverParam: unknown;
|
|
97
|
+
notNull: true;
|
|
98
|
+
hasDefault: true;
|
|
99
|
+
isPrimaryKey: false;
|
|
100
|
+
isAutoincrement: false;
|
|
101
|
+
hasRuntimeDefault: false;
|
|
102
|
+
enumValues: undefined;
|
|
103
|
+
baseColumn: never;
|
|
104
|
+
identity: undefined;
|
|
105
|
+
generated: undefined;
|
|
106
|
+
}, {}, {
|
|
107
|
+
$type: string[];
|
|
108
|
+
}>;
|
|
109
|
+
domains: import("drizzle-orm/pg-core").PgColumn<{
|
|
110
|
+
name: "domains";
|
|
111
|
+
tableName: "tenants";
|
|
112
|
+
dataType: "json";
|
|
113
|
+
columnType: "PgJsonb";
|
|
114
|
+
data: {
|
|
115
|
+
domain: string;
|
|
116
|
+
}[];
|
|
117
|
+
driverParam: unknown;
|
|
118
|
+
notNull: true;
|
|
119
|
+
hasDefault: true;
|
|
120
|
+
isPrimaryKey: false;
|
|
121
|
+
isAutoincrement: false;
|
|
122
|
+
hasRuntimeDefault: false;
|
|
123
|
+
enumValues: undefined;
|
|
124
|
+
baseColumn: never;
|
|
125
|
+
identity: undefined;
|
|
126
|
+
generated: undefined;
|
|
127
|
+
}, {}, {
|
|
128
|
+
$type: {
|
|
129
|
+
domain: string;
|
|
130
|
+
}[];
|
|
131
|
+
}>;
|
|
132
|
+
_json: import("drizzle-orm/pg-core").PgColumn<{
|
|
133
|
+
name: "_json";
|
|
134
|
+
tableName: "tenants";
|
|
135
|
+
dataType: "json";
|
|
136
|
+
columnType: "PgJsonb";
|
|
137
|
+
data: unknown;
|
|
138
|
+
driverParam: unknown;
|
|
139
|
+
notNull: true;
|
|
140
|
+
hasDefault: true;
|
|
141
|
+
isPrimaryKey: false;
|
|
142
|
+
isAutoincrement: false;
|
|
143
|
+
hasRuntimeDefault: false;
|
|
144
|
+
enumValues: undefined;
|
|
145
|
+
baseColumn: never;
|
|
146
|
+
identity: undefined;
|
|
147
|
+
generated: undefined;
|
|
148
|
+
}, {}, {}>;
|
|
149
|
+
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
150
|
+
name: "created_at";
|
|
151
|
+
tableName: "tenants";
|
|
152
|
+
dataType: "date";
|
|
153
|
+
columnType: "PgTimestamp";
|
|
154
|
+
data: Date;
|
|
155
|
+
driverParam: string;
|
|
156
|
+
notNull: true;
|
|
157
|
+
hasDefault: true;
|
|
158
|
+
isPrimaryKey: false;
|
|
159
|
+
isAutoincrement: false;
|
|
160
|
+
hasRuntimeDefault: false;
|
|
161
|
+
enumValues: undefined;
|
|
162
|
+
baseColumn: never;
|
|
163
|
+
identity: undefined;
|
|
164
|
+
generated: undefined;
|
|
165
|
+
}, {}, {}>;
|
|
166
|
+
updatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
167
|
+
name: "updated_at";
|
|
168
|
+
tableName: "tenants";
|
|
169
|
+
dataType: "date";
|
|
170
|
+
columnType: "PgTimestamp";
|
|
171
|
+
data: Date;
|
|
172
|
+
driverParam: string;
|
|
173
|
+
notNull: true;
|
|
174
|
+
hasDefault: true;
|
|
175
|
+
isPrimaryKey: false;
|
|
176
|
+
isAutoincrement: false;
|
|
177
|
+
hasRuntimeDefault: false;
|
|
178
|
+
enumValues: undefined;
|
|
179
|
+
baseColumn: never;
|
|
180
|
+
identity: undefined;
|
|
181
|
+
generated: undefined;
|
|
182
|
+
}, {}, {}>;
|
|
183
|
+
};
|
|
184
|
+
dialect: "pg";
|
|
185
|
+
}>;
|
|
186
|
+
export type Tenant = typeof tenants.$inferSelect;
|
|
187
|
+
export type NewTenant = typeof tenants.$inferInsert;
|
|
188
|
+
//# sourceMappingURL=tenants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBASgC,MAAM;;;;;;;;;;;;;;wBAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzD,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsonb, pgTable, text, timestamp, uniqueIndex } from 'drizzle-orm/pg-core';
|
|
2
|
+
export const tenants = pgTable('tenants', {
|
|
3
|
+
id: text('id').primaryKey(),
|
|
4
|
+
schemaVersion: text('schema_version').notNull().default('1'),
|
|
5
|
+
name: text('name').notNull(),
|
|
6
|
+
email: text('email').notNull(),
|
|
7
|
+
password: text('password'),
|
|
8
|
+
roles: jsonb('roles').$type().default([]).notNull(),
|
|
9
|
+
domains: jsonb('domains').$type().default([]).notNull(),
|
|
10
|
+
// biome-ignore lint/style/useNamingConvention: RevealUI document metadata field
|
|
11
|
+
_json: jsonb('_json').default({}).notNull(),
|
|
12
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
13
|
+
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
14
|
+
}, (table) => [uniqueIndex('tenants_email_idx').on(table.email)]);
|
|
15
|
+
//# sourceMappingURL=tenants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAC5B,SAAS,EACT;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7D,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAA6B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAClF,gFAAgF;IAChF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBjB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,YAAY,CAAC;AAMlD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAM9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAM9D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwDM,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;qBAA5D,MAAM;0BAAY,MAAM;0BAAY,MAAM;0BAAY,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBrF,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC;AAMpD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAMlE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBlC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAC;AAC/E,MAAM,MAAM,wBAAwB,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAC"}
|
package/dist/schema/tickets.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - ticketComments: Threaded discussion per ticket
|
|
13
13
|
* - ticketLabelAssignments: Junction table for ticket-label M:N
|
|
14
14
|
*/
|
|
15
|
-
import { boolean, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
|
|
15
|
+
import { boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, } from 'drizzle-orm/pg-core';
|
|
16
16
|
import { users } from './users.js';
|
|
17
17
|
// =============================================================================
|
|
18
18
|
// Boards
|
|
@@ -83,7 +83,9 @@ export const tickets = pgTable('tickets', {
|
|
|
83
83
|
/** Current kanban column */
|
|
84
84
|
columnId: text('column_id').references(() => boardColumns.id, { onDelete: 'set null' }),
|
|
85
85
|
/** Parent ticket for subtasks/epics (self-referencing) */
|
|
86
|
-
parentTicketId: text('parent_ticket_id'),
|
|
86
|
+
parentTicketId: text('parent_ticket_id').references(() => tickets.id, {
|
|
87
|
+
onDelete: 'cascade',
|
|
88
|
+
}),
|
|
87
89
|
/** Human-readable ticket number, auto-incremented per board */
|
|
88
90
|
ticketNumber: integer('ticket_number').notNull(),
|
|
89
91
|
title: text('title').notNull(),
|
|
@@ -118,7 +120,14 @@ export const tickets = pgTable('tickets', {
|
|
|
118
120
|
closedAt: timestamp('closed_at', { withTimezone: true }),
|
|
119
121
|
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
120
122
|
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
|
|
121
|
-
})
|
|
123
|
+
}, (table) => [
|
|
124
|
+
index('tickets_board_id_idx').on(table.boardId),
|
|
125
|
+
index('tickets_column_id_idx').on(table.columnId),
|
|
126
|
+
index('tickets_assignee_id_idx').on(table.assigneeId),
|
|
127
|
+
index('tickets_parent_ticket_id_idx').on(table.parentTicketId),
|
|
128
|
+
index('tickets_reporter_id_idx').on(table.reporterId),
|
|
129
|
+
uniqueIndex('tickets_board_ticket_number_idx').on(table.boardId, table.ticketNumber),
|
|
130
|
+
]);
|
|
122
131
|
// =============================================================================
|
|
123
132
|
// Ticket Comments
|
|
124
133
|
// =============================================================================
|
|
@@ -133,7 +142,10 @@ export const ticketComments = pgTable('ticket_comments', {
|
|
|
133
142
|
body: jsonb('body').notNull(),
|
|
134
143
|
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
135
144
|
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
|
|
136
|
-
})
|
|
145
|
+
}, (table) => [
|
|
146
|
+
index('ticket_comments_ticket_id_idx').on(table.ticketId),
|
|
147
|
+
index('ticket_comments_author_id_idx').on(table.authorId),
|
|
148
|
+
]);
|
|
137
149
|
// =============================================================================
|
|
138
150
|
// Ticket-Label Assignments (M:N junction)
|
|
139
151
|
// =============================================================================
|
|
@@ -146,5 +158,5 @@ export const ticketLabelAssignments = pgTable('ticket_label_assignments', {
|
|
|
146
158
|
.notNull()
|
|
147
159
|
.references(() => ticketLabels.id, { onDelete: 'cascade' }),
|
|
148
160
|
assignedAt: timestamp('assigned_at', { withTimezone: true }).notNull().defaultNow(),
|
|
149
|
-
});
|
|
161
|
+
}, (table) => [uniqueIndex('ticket_label_unique_idx').on(table.ticketId, table.labelId)]);
|
|
150
162
|
//# sourceMappingURL=tickets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/schema/tickets.ts"],"names":[],"mappings":"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"}
|