@apart-tech/intelligence-core 1.11.5 → 1.11.6
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/dist/auth/ability.d.ts +4 -4
- package/dist/auth/ability.d.ts.map +1 -1
- package/dist/auth/ability.js +17 -11
- package/dist/auth/ability.js.map +1 -1
- package/dist/auth/ability.test.js +25 -12
- package/dist/auth/ability.test.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +5 -1
- package/dist/config/index.js.map +1 -1
- package/dist/db/tenant.d.ts.map +1 -1
- package/dist/db/tenant.js +8 -0
- package/dist/db/tenant.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/__tests__/chunk-service.test.d.ts +2 -0
- package/dist/services/__tests__/chunk-service.test.d.ts.map +1 -0
- package/dist/services/__tests__/chunk-service.test.js +111 -0
- package/dist/services/__tests__/chunk-service.test.js.map +1 -0
- package/dist/services/__tests__/chunker.test.d.ts +2 -0
- package/dist/services/__tests__/chunker.test.d.ts.map +1 -0
- package/dist/services/__tests__/chunker.test.js +113 -0
- package/dist/services/__tests__/chunker.test.js.map +1 -0
- package/dist/services/__tests__/node-service.test.d.ts +2 -0
- package/dist/services/__tests__/node-service.test.d.ts.map +1 -0
- package/dist/services/__tests__/node-service.test.js +207 -0
- package/dist/services/__tests__/node-service.test.js.map +1 -0
- package/dist/services/__tests__/pii-detector-service.test.js +51 -0
- package/dist/services/__tests__/pii-detector-service.test.js.map +1 -1
- package/dist/services/__tests__/pii-encryption-service.test.js +37 -0
- package/dist/services/__tests__/pii-encryption-service.test.js.map +1 -1
- package/dist/services/__tests__/search-service.test.d.ts +2 -0
- package/dist/services/__tests__/search-service.test.d.ts.map +1 -0
- package/dist/services/__tests__/search-service.test.js +163 -0
- package/dist/services/__tests__/search-service.test.js.map +1 -0
- package/dist/services/backfill-chunks.d.ts +30 -0
- package/dist/services/backfill-chunks.d.ts.map +1 -0
- package/dist/services/backfill-chunks.js +55 -0
- package/dist/services/backfill-chunks.js.map +1 -0
- package/dist/services/chunk-service.d.ts +45 -0
- package/dist/services/chunk-service.d.ts.map +1 -0
- package/dist/services/chunk-service.js +111 -0
- package/dist/services/chunk-service.js.map +1 -0
- package/dist/services/chunker.d.ts +32 -0
- package/dist/services/chunker.d.ts.map +1 -0
- package/dist/services/chunker.js +289 -0
- package/dist/services/chunker.js.map +1 -0
- package/dist/services/context-service.d.ts +3 -1
- package/dist/services/context-service.d.ts.map +1 -1
- package/dist/services/context-service.js +17 -1
- package/dist/services/context-service.js.map +1 -1
- package/dist/services/node-service.d.ts +12 -1
- package/dist/services/node-service.d.ts.map +1 -1
- package/dist/services/node-service.js +54 -11
- package/dist/services/node-service.js.map +1 -1
- package/dist/services/pii-detector-service.d.ts +1 -0
- package/dist/services/pii-detector-service.d.ts.map +1 -1
- package/dist/services/pii-detector-service.js +95 -2
- package/dist/services/pii-detector-service.js.map +1 -1
- package/dist/services/pii-encryption-service.d.ts +10 -0
- package/dist/services/pii-encryption-service.d.ts.map +1 -1
- package/dist/services/pii-encryption-service.js +32 -0
- package/dist/services/pii-encryption-service.js.map +1 -1
- package/dist/services/search-service.d.ts +30 -1
- package/dist/services/search-service.d.ts.map +1 -1
- package/dist/services/search-service.js +262 -45
- package/dist/services/search-service.js.map +1 -1
- package/dist/services/tag-service.d.ts +78 -0
- package/dist/services/tag-service.d.ts.map +1 -0
- package/dist/services/tag-service.js +639 -0
- package/dist/services/tag-service.js.map +1 -0
- package/dist/services/tag-service.test.d.ts +2 -0
- package/dist/services/tag-service.test.d.ts.map +1 -0
- package/dist/services/tag-service.test.js +448 -0
- package/dist/services/tag-service.test.js.map +1 -0
- package/dist/services/workspace-service.d.ts +2 -0
- package/dist/services/workspace-service.d.ts.map +1 -1
- package/dist/services/workspace-service.js +7 -1
- package/dist/services/workspace-service.js.map +1 -1
- package/dist/types/index.d.ts +67 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/prisma/schema.prisma +180 -3
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,60 @@
|
|
|
1
|
-
import type { Node as PrismaNode, Edge as PrismaEdge, Domain as PrismaDomain, Workspace as PrismaWorkspace } from "@prisma/client";
|
|
1
|
+
import type { Node as PrismaNode, Edge as PrismaEdge, Domain as PrismaDomain, Workspace as PrismaWorkspace, NodeChunk as PrismaNodeChunk, TagDefinition as PrismaTagDefinition, NodeTag as PrismaNodeTag, NodeTagHistory as PrismaNodeTagHistory, NodeTagAudit as PrismaNodeTagAudit } from "@prisma/client";
|
|
2
2
|
export type Node = PrismaNode;
|
|
3
3
|
export type Domain = PrismaDomain;
|
|
4
4
|
export type Workspace = PrismaWorkspace;
|
|
5
|
+
export type NodeChunk = PrismaNodeChunk;
|
|
6
|
+
export type TagDefinition = PrismaTagDefinition;
|
|
7
|
+
export type NodeTag = PrismaNodeTag;
|
|
8
|
+
export type NodeTagHistory = PrismaNodeTagHistory;
|
|
9
|
+
export type NodeTagAudit = PrismaNodeTagAudit;
|
|
10
|
+
export type TagType = "text" | "number" | "date" | "enum" | "ref";
|
|
11
|
+
export type TagCardinality = "singleton" | "multi";
|
|
12
|
+
export type TagSource = "extracted" | "computed" | "declared";
|
|
13
|
+
export type VerificationStatus = "unverified" | "auto-accepted" | "human-verified" | "contested";
|
|
14
|
+
export type TagDefinitionStatus = "active" | "deprecated" | "retired";
|
|
15
|
+
export interface ApplyTagInput {
|
|
16
|
+
tagName: string;
|
|
17
|
+
valueText?: string;
|
|
18
|
+
valueNum?: number;
|
|
19
|
+
valueCurrency?: string;
|
|
20
|
+
valueUnit?: string;
|
|
21
|
+
valueDate?: string;
|
|
22
|
+
valueRef?: string;
|
|
23
|
+
textSpan?: string;
|
|
24
|
+
offsetStart?: number;
|
|
25
|
+
offsetEnd?: number;
|
|
26
|
+
contentVersion?: number;
|
|
27
|
+
attrs?: Record<string, unknown>;
|
|
28
|
+
confidence?: number;
|
|
29
|
+
modelId?: string;
|
|
30
|
+
modelVersion?: string;
|
|
31
|
+
}
|
|
32
|
+
export type TagFilterOp = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "between" | "in" | "contains" | "exists";
|
|
33
|
+
export interface TagFilter {
|
|
34
|
+
tagName: string;
|
|
35
|
+
op: TagFilterOp;
|
|
36
|
+
value?: string | number | boolean | string[] | number[];
|
|
37
|
+
valueTo?: string | number;
|
|
38
|
+
}
|
|
39
|
+
export interface TagQuery {
|
|
40
|
+
filters: TagFilter[];
|
|
41
|
+
groupBy?: string[];
|
|
42
|
+
aggregations?: Array<{
|
|
43
|
+
fn: "count" | "sum" | "avg" | "min" | "max";
|
|
44
|
+
tagName: string;
|
|
45
|
+
}>;
|
|
46
|
+
limit?: number;
|
|
47
|
+
offset?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface TagQueryResult {
|
|
50
|
+
rows: Record<string, unknown>[];
|
|
51
|
+
total: number;
|
|
52
|
+
}
|
|
53
|
+
export interface BatchError {
|
|
54
|
+
index: number;
|
|
55
|
+
tagName: string;
|
|
56
|
+
error: string;
|
|
57
|
+
}
|
|
5
58
|
export type NewNode = Omit<Node, "id" | "createdAt" | "updatedAt" | "embedding" | "searchVector"> & {
|
|
6
59
|
embedding?: unknown;
|
|
7
60
|
searchVector?: unknown;
|
|
@@ -16,11 +69,14 @@ export interface SearchOptions {
|
|
|
16
69
|
statuses?: NodeStatus[];
|
|
17
70
|
includeDrafts?: boolean;
|
|
18
71
|
domainIds?: string[];
|
|
72
|
+
tagFilters?: TagFilter[];
|
|
19
73
|
}
|
|
20
74
|
export interface SearchResult {
|
|
21
75
|
node: Node;
|
|
22
76
|
score: number;
|
|
23
|
-
matchType: "semantic" | "keyword" | "hybrid";
|
|
77
|
+
matchType: "semantic" | "keyword" | "substring" | "trigram" | "hybrid";
|
|
78
|
+
snippet?: string;
|
|
79
|
+
snippetChunkIndex?: number;
|
|
24
80
|
}
|
|
25
81
|
export interface ContextOptions {
|
|
26
82
|
query: string;
|
|
@@ -43,6 +99,7 @@ export interface ContextPackage {
|
|
|
43
99
|
slug: string;
|
|
44
100
|
description: string;
|
|
45
101
|
};
|
|
102
|
+
chunks?: Record<string, string[]>;
|
|
46
103
|
}
|
|
47
104
|
export interface EmbedBatchOptions {
|
|
48
105
|
onProgress?: (progress: EmbeddingProgress) => void;
|
|
@@ -62,6 +119,10 @@ export interface EmbeddingProvider {
|
|
|
62
119
|
export interface OrgMetadata {
|
|
63
120
|
search?: {
|
|
64
121
|
semanticWeight?: number;
|
|
122
|
+
keywordWeight?: number;
|
|
123
|
+
substringWeight?: number;
|
|
124
|
+
trigramWeight?: number;
|
|
125
|
+
trigramThreshold?: number;
|
|
65
126
|
defaultLimit?: number;
|
|
66
127
|
includeDrafts?: boolean;
|
|
67
128
|
};
|
|
@@ -105,6 +166,10 @@ export interface ApartConfig {
|
|
|
105
166
|
};
|
|
106
167
|
search: {
|
|
107
168
|
semanticWeight: number;
|
|
169
|
+
keywordWeight: number;
|
|
170
|
+
substringWeight: number;
|
|
171
|
+
trigramWeight: number;
|
|
172
|
+
trigramThreshold: number;
|
|
108
173
|
defaultLimit: number;
|
|
109
174
|
includeDrafts: boolean;
|
|
110
175
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,IAAI,UAAU,EAClB,IAAI,IAAI,UAAU,EAClB,MAAM,IAAI,YAAY,EACtB,SAAS,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apart-tech/intelligence-core",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.6",
|
|
4
4
|
"description": "Core library: database, services, and providers for Apart Intelligence",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"access": "public"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@casl/ability": "^6.
|
|
22
|
+
"@casl/ability": "^6.8.0",
|
|
23
23
|
"@cdssnc/sanitize-pii": "^2.1.2",
|
|
24
24
|
"@prisma/client": "^6.6.0",
|
|
25
25
|
"@prisma/extension-accelerate": "^3.0.1",
|
package/prisma/schema.prisma
CHANGED
|
@@ -35,6 +35,10 @@ model Organization {
|
|
|
35
35
|
orgAgentTypes OrgAgentType[]
|
|
36
36
|
orgMcpServers OrgMcpServer[]
|
|
37
37
|
usageRecords UsageRecord[]
|
|
38
|
+
tagDefinitions TagDefinition[]
|
|
39
|
+
nodeTags NodeTag[]
|
|
40
|
+
nodeChunks NodeChunk[]
|
|
41
|
+
piiQueryLogs PiiQueryLog[]
|
|
38
42
|
|
|
39
43
|
@@map("organizations")
|
|
40
44
|
}
|
|
@@ -123,6 +127,22 @@ model OrgPiiConfig {
|
|
|
123
127
|
@@map("org_pii_config")
|
|
124
128
|
}
|
|
125
129
|
|
|
130
|
+
model PiiQueryLog {
|
|
131
|
+
id String @id @default(uuid()) @db.Uuid
|
|
132
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
133
|
+
queryHash String @map("query_hash") @db.Text
|
|
134
|
+
piiTypesDetected String[] @map("pii_types_detected")
|
|
135
|
+
matchCount Int @map("match_count")
|
|
136
|
+
source String @db.VarChar(20)
|
|
137
|
+
principalId String? @map("principal_id") @db.Text
|
|
138
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
139
|
+
|
|
140
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
141
|
+
|
|
142
|
+
@@index([organizationId, createdAt], map: "idx_pii_query_logs_org_time")
|
|
143
|
+
@@map("pii_query_logs")
|
|
144
|
+
}
|
|
145
|
+
|
|
126
146
|
model Domain {
|
|
127
147
|
id String @id @default(uuid()) @db.Uuid
|
|
128
148
|
name String @db.VarChar(200)
|
|
@@ -159,12 +179,15 @@ model Node {
|
|
|
159
179
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
160
180
|
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
161
181
|
version Int @default(1)
|
|
162
|
-
hasPii
|
|
163
|
-
|
|
164
|
-
|
|
182
|
+
hasPii Boolean @default(false) @map("has_pii")
|
|
183
|
+
embeddingPiiMode String? @map("embedding_pii_mode") @db.VarChar(20)
|
|
184
|
+
domainId String? @map("domain_id") @db.Uuid
|
|
185
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
165
186
|
|
|
166
187
|
sourceEdges Edge[] @relation("SourceNode")
|
|
167
188
|
targetEdges Edge[] @relation("TargetNode")
|
|
189
|
+
tags NodeTag[]
|
|
190
|
+
chunks NodeChunk[]
|
|
168
191
|
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
|
169
192
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
170
193
|
|
|
@@ -177,6 +200,30 @@ model Node {
|
|
|
177
200
|
@@map("nodes")
|
|
178
201
|
}
|
|
179
202
|
|
|
203
|
+
model NodeChunk {
|
|
204
|
+
id String @id @default(uuid()) @db.Uuid
|
|
205
|
+
nodeId String @map("node_id") @db.Uuid
|
|
206
|
+
chunkIndex Int @map("chunk_index")
|
|
207
|
+
content String @db.Text
|
|
208
|
+
tokenCount Int @map("token_count")
|
|
209
|
+
headingContext String? @map("heading_context") @db.VarChar(500)
|
|
210
|
+
startOffset Int @map("start_offset")
|
|
211
|
+
endOffset Int @map("end_offset")
|
|
212
|
+
overlapPrev Int @default(0) @map("overlap_prev")
|
|
213
|
+
embedding Unsupported("vector")?
|
|
214
|
+
embeddingPiiMode String? @map("embedding_pii_mode") @db.VarChar(20)
|
|
215
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
216
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
217
|
+
|
|
218
|
+
node Node @relation(fields: [nodeId], references: [id], onDelete: Cascade)
|
|
219
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
220
|
+
|
|
221
|
+
@@unique([nodeId, chunkIndex], map: "uq_node_chunks_node_idx")
|
|
222
|
+
@@index([nodeId], map: "idx_node_chunks_node")
|
|
223
|
+
@@index([organizationId], map: "idx_node_chunks_org")
|
|
224
|
+
@@map("node_chunks")
|
|
225
|
+
}
|
|
226
|
+
|
|
180
227
|
model Edge {
|
|
181
228
|
id String @id @default(uuid()) @db.Uuid
|
|
182
229
|
sourceNodeId String @map("source_node_id") @db.Uuid
|
|
@@ -431,3 +478,133 @@ model UsageRecord {
|
|
|
431
478
|
@@index([organizationId], map: "idx_usage_records_organization")
|
|
432
479
|
@@map("usage_records")
|
|
433
480
|
}
|
|
481
|
+
|
|
482
|
+
// ── Tag System ──────────────────────────────────────────────────────────────
|
|
483
|
+
|
|
484
|
+
model TagDefinition {
|
|
485
|
+
id String @id @default(uuid()) @db.Uuid
|
|
486
|
+
organizationId String? @map("organization_id") @db.Uuid
|
|
487
|
+
tagName String @map("tag_name") @db.VarChar(100)
|
|
488
|
+
tagType String @map("tag_type") @db.VarChar(20)
|
|
489
|
+
cardinality String @default("singleton") @db.VarChar(10)
|
|
490
|
+
source String @default("extracted") @db.VarChar(20)
|
|
491
|
+
status String @default("active") @map("status") @db.VarChar(20)
|
|
492
|
+
description String @default("") @db.Text
|
|
493
|
+
category String? @map("category") @db.VarChar(50)
|
|
494
|
+
labels Json? @map("labels") @db.JsonB
|
|
495
|
+
applicableNodeTypes Json @default("[]") @map("applicable_node_types")
|
|
496
|
+
requiredForNodeTypes Json @default("[]") @map("required_for_node_types")
|
|
497
|
+
enumValues Json? @map("enum_values")
|
|
498
|
+
enumVersion Int @default(1) @map("enum_version")
|
|
499
|
+
dependsOn Json @default("[]") @map("depends_on")
|
|
500
|
+
autoAcceptThreshold Float? @map("auto_accept_threshold") @db.Real
|
|
501
|
+
parentDefinitionId String? @map("parent_definition_id") @db.Uuid
|
|
502
|
+
replacedBy String? @map("replaced_by") @db.Uuid
|
|
503
|
+
deprecatedAt DateTime? @map("deprecated_at") @db.Timestamptz
|
|
504
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
505
|
+
createdBy String @map("created_by") @db.VarChar(255)
|
|
506
|
+
|
|
507
|
+
organization Organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
508
|
+
parentDef TagDefinition? @relation("TagDefHierarchy", fields: [parentDefinitionId], references: [id])
|
|
509
|
+
childDefs TagDefinition[] @relation("TagDefHierarchy")
|
|
510
|
+
replacementDef TagDefinition? @relation("TagDefReplacement", fields: [replacedBy], references: [id])
|
|
511
|
+
replacedDefs TagDefinition[] @relation("TagDefReplacement")
|
|
512
|
+
tags NodeTag[]
|
|
513
|
+
|
|
514
|
+
@@unique([organizationId, tagName], map: "uq_tag_def_org_name")
|
|
515
|
+
@@index([organizationId], map: "idx_tag_defs_org")
|
|
516
|
+
@@index([parentDefinitionId], map: "idx_tag_defs_parent")
|
|
517
|
+
@@map("tag_definitions")
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
model NodeTag {
|
|
521
|
+
id String @id @default(uuid()) @db.Uuid
|
|
522
|
+
nodeId String @map("node_id") @db.Uuid
|
|
523
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
524
|
+
tagDefinitionId String @map("tag_definition_id") @db.Uuid
|
|
525
|
+
tagName String @map("tag_name") @db.VarChar(100)
|
|
526
|
+
isSingleton Boolean @default(false) @map("is_singleton")
|
|
527
|
+
|
|
528
|
+
valueText String? @map("value_text") @db.Text
|
|
529
|
+
valueNum Float? @map("value_num") @db.DoublePrecision
|
|
530
|
+
valueCurrency String? @map("value_currency") @db.Char(3)
|
|
531
|
+
valueUnit String? @map("value_unit") @db.VarChar(20)
|
|
532
|
+
valueDate DateTime? @map("value_date") @db.Timestamptz
|
|
533
|
+
valueRef String? @map("value_ref") @db.Uuid
|
|
534
|
+
|
|
535
|
+
textSpan String? @map("text_span") @db.Text
|
|
536
|
+
offsetStart Int? @map("offset_start")
|
|
537
|
+
offsetEnd Int? @map("offset_end")
|
|
538
|
+
contentVersion Int? @map("content_version")
|
|
539
|
+
attrs Json @default("{}") @db.JsonB
|
|
540
|
+
|
|
541
|
+
taggedBy String @map("tagged_by") @db.VarChar(255)
|
|
542
|
+
modelId String? @map("model_id") @db.VarChar(100)
|
|
543
|
+
modelVersion String? @map("model_version") @db.VarChar(50)
|
|
544
|
+
confidence Float? @db.Real
|
|
545
|
+
verificationStatus String @default("unverified") @map("verification_status") @db.VarChar(20)
|
|
546
|
+
verifiedBy String? @map("verified_by") @db.VarChar(255)
|
|
547
|
+
verifiedAt DateTime? @map("verified_at") @db.Timestamptz
|
|
548
|
+
supersededBy String? @map("superseded_by") @db.Uuid
|
|
549
|
+
batchId String? @map("batch_id") @db.Uuid
|
|
550
|
+
|
|
551
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
552
|
+
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
553
|
+
|
|
554
|
+
node Node @relation(fields: [nodeId], references: [id], onDelete: Cascade)
|
|
555
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
556
|
+
tagDefinition TagDefinition @relation(fields: [tagDefinitionId], references: [id])
|
|
557
|
+
supersedes NodeTag? @relation("TagSupersession", fields: [supersededBy], references: [id])
|
|
558
|
+
supersededTags NodeTag[] @relation("TagSupersession")
|
|
559
|
+
|
|
560
|
+
@@index([nodeId], map: "idx_node_tags_node")
|
|
561
|
+
@@index([organizationId, tagName], map: "idx_node_tags_org_name")
|
|
562
|
+
@@index([valueRef], map: "idx_node_tags_ref")
|
|
563
|
+
@@index([batchId], map: "idx_node_tags_batch")
|
|
564
|
+
@@map("node_tags")
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
model NodeTagHistory {
|
|
568
|
+
id String @id @default(uuid()) @db.Uuid
|
|
569
|
+
tagId String @map("tag_id") @db.Uuid
|
|
570
|
+
nodeId String @map("node_id") @db.Uuid
|
|
571
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
572
|
+
tagName String @map("tag_name") @db.VarChar(100)
|
|
573
|
+
|
|
574
|
+
valueText String? @map("value_text") @db.Text
|
|
575
|
+
valueNum Float? @map("value_num") @db.DoublePrecision
|
|
576
|
+
valueCurrency String? @map("value_currency") @db.Char(3)
|
|
577
|
+
valueUnit String? @map("value_unit") @db.VarChar(20)
|
|
578
|
+
valueDate DateTime? @map("value_date") @db.Timestamptz
|
|
579
|
+
valueRef String? @map("value_ref") @db.Uuid
|
|
580
|
+
|
|
581
|
+
validFrom DateTime @map("valid_from") @db.Timestamptz
|
|
582
|
+
validUntil DateTime @map("valid_until") @db.Timestamptz
|
|
583
|
+
systemFrom DateTime @map("system_from") @db.Timestamptz
|
|
584
|
+
systemTo DateTime? @map("system_to") @db.Timestamptz
|
|
585
|
+
|
|
586
|
+
replacedBy String @map("replaced_by") @db.VarChar(255)
|
|
587
|
+
|
|
588
|
+
@@index([nodeId, tagName, validFrom], map: "idx_tag_history_node_name_time")
|
|
589
|
+
@@index([organizationId, tagName, validFrom], map: "idx_tag_history_org_name_time")
|
|
590
|
+
@@index([nodeId, tagName, systemFrom], map: "idx_tag_history_node_name_system_time")
|
|
591
|
+
@@map("node_tag_history")
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
model NodeTagAudit {
|
|
595
|
+
id String @id @default(uuid()) @db.Uuid
|
|
596
|
+
tagId String @map("tag_id") @db.Uuid
|
|
597
|
+
nodeId String @map("node_id") @db.Uuid
|
|
598
|
+
orgId String @map("organization_id") @db.Uuid
|
|
599
|
+
action String @map("action") @db.VarChar(20)
|
|
600
|
+
oldValue Json? @map("old_value") @db.JsonB
|
|
601
|
+
newValue Json? @map("new_value") @db.JsonB
|
|
602
|
+
actorId String @map("actor_id") @db.Uuid
|
|
603
|
+
reason String? @db.Text
|
|
604
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
605
|
+
|
|
606
|
+
@@index([tagId], map: "idx_tag_audit_tag")
|
|
607
|
+
@@index([nodeId], map: "idx_tag_audit_node")
|
|
608
|
+
@@index([orgId, createdAt], map: "idx_tag_audit_org_time")
|
|
609
|
+
@@map("node_tag_audit")
|
|
610
|
+
}
|