@objectstack/platform-objects 5.1.0 → 5.2.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/dist/apps/index.js +22 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/index.mjs +22 -0
- package/dist/apps/index.mjs.map +1 -1
- package/dist/audit/index.d.mts +228 -3
- package/dist/audit/index.d.ts +228 -3
- package/dist/audit/index.js +59 -4
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/index.mjs +59 -4
- package/dist/audit/index.mjs.map +1 -1
- package/dist/index.js +103 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +103 -6
- package/dist/index.mjs.map +1 -1
- package/dist/security/index.js +22 -2
- package/dist/security/index.js.map +1 -1
- package/dist/security/index.mjs +22 -2
- package/dist/security/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/audit/index.d.mts
CHANGED
|
@@ -15557,6 +15557,49 @@ declare const SysNotification: Omit<{
|
|
|
15557
15557
|
readonly displayNameField: "title";
|
|
15558
15558
|
readonly titleFormat: "{title}";
|
|
15559
15559
|
readonly compactLayout: ["title", "type", "is_read", "created_at"];
|
|
15560
|
+
/**
|
|
15561
|
+
* Row-level inbox actions. Use `visible` CEL expressions to ensure
|
|
15562
|
+
* `mark_read` only shows on unread rows and vice-versa, mirroring the
|
|
15563
|
+
* mark-as-read affordances in GitHub / Linear inboxes. The toolbar-level
|
|
15564
|
+
* `mark_all_read` is intentionally omitted server-side: it requires a
|
|
15565
|
+
* bulk update primitive that doesn't yet exist on the REST surface, and
|
|
15566
|
+
* the popover already handles the multi-row case client-side via N
|
|
15567
|
+
* single-row PATCHes (see `InboxPopover.tsx` -> AppHeader `markAllRead`).
|
|
15568
|
+
*/
|
|
15569
|
+
readonly actions: [{
|
|
15570
|
+
readonly name: "mark_read";
|
|
15571
|
+
readonly label: "Mark as Read";
|
|
15572
|
+
readonly icon: "check";
|
|
15573
|
+
readonly variant: "secondary";
|
|
15574
|
+
readonly mode: "custom";
|
|
15575
|
+
readonly locations: ["list_item"];
|
|
15576
|
+
readonly type: "api";
|
|
15577
|
+
readonly method: "PATCH";
|
|
15578
|
+
readonly target: "/api/v1/data/sys_notification/{id}";
|
|
15579
|
+
readonly bodyExtra: {
|
|
15580
|
+
readonly is_read: true;
|
|
15581
|
+
};
|
|
15582
|
+
readonly visible: "!record.is_read";
|
|
15583
|
+
readonly successMessage: "Notification marked as read";
|
|
15584
|
+
readonly refreshAfter: true;
|
|
15585
|
+
}, {
|
|
15586
|
+
readonly name: "mark_unread";
|
|
15587
|
+
readonly label: "Mark as Unread";
|
|
15588
|
+
readonly icon: "bell-dot";
|
|
15589
|
+
readonly variant: "secondary";
|
|
15590
|
+
readonly mode: "custom";
|
|
15591
|
+
readonly locations: ["list_item"];
|
|
15592
|
+
readonly type: "api";
|
|
15593
|
+
readonly method: "PATCH";
|
|
15594
|
+
readonly target: "/api/v1/data/sys_notification/{id}";
|
|
15595
|
+
readonly bodyExtra: {
|
|
15596
|
+
readonly is_read: false;
|
|
15597
|
+
readonly read_at: null;
|
|
15598
|
+
};
|
|
15599
|
+
readonly visible: "record.is_read";
|
|
15600
|
+
readonly successMessage: "Notification marked as unread";
|
|
15601
|
+
readonly refreshAfter: true;
|
|
15602
|
+
}];
|
|
15560
15603
|
readonly listViews: {
|
|
15561
15604
|
readonly unread: {
|
|
15562
15605
|
readonly type: "grid";
|
|
@@ -15566,7 +15609,7 @@ declare const SysNotification: Omit<{
|
|
|
15566
15609
|
readonly provider: "object";
|
|
15567
15610
|
readonly object: "sys_notification";
|
|
15568
15611
|
};
|
|
15569
|
-
readonly columns: ["
|
|
15612
|
+
readonly columns: ["title", "actor_name", "type", "created_at"];
|
|
15570
15613
|
readonly filter: [{
|
|
15571
15614
|
readonly field: "recipient_id";
|
|
15572
15615
|
readonly operator: "equals";
|
|
@@ -15596,7 +15639,7 @@ declare const SysNotification: Omit<{
|
|
|
15596
15639
|
readonly provider: "object";
|
|
15597
15640
|
readonly object: "sys_notification";
|
|
15598
15641
|
};
|
|
15599
|
-
readonly columns: ["
|
|
15642
|
+
readonly columns: ["title", "actor_name", "type", "is_read", "created_at"];
|
|
15600
15643
|
readonly filter: [{
|
|
15601
15644
|
readonly field: "recipient_id";
|
|
15602
15645
|
readonly operator: "equals";
|
|
@@ -15609,6 +15652,13 @@ declare const SysNotification: Omit<{
|
|
|
15609
15652
|
readonly pagination: {
|
|
15610
15653
|
readonly pageSize: 50;
|
|
15611
15654
|
};
|
|
15655
|
+
readonly grouping: {
|
|
15656
|
+
readonly fields: [{
|
|
15657
|
+
readonly field: "type";
|
|
15658
|
+
readonly order: "asc";
|
|
15659
|
+
readonly collapsed: false;
|
|
15660
|
+
}];
|
|
15661
|
+
};
|
|
15612
15662
|
};
|
|
15613
15663
|
readonly all_notifications: {
|
|
15614
15664
|
readonly type: "grid";
|
|
@@ -15618,7 +15668,7 @@ declare const SysNotification: Omit<{
|
|
|
15618
15668
|
readonly provider: "object";
|
|
15619
15669
|
readonly object: "sys_notification";
|
|
15620
15670
|
};
|
|
15621
|
-
readonly columns: ["
|
|
15671
|
+
readonly columns: ["title", "recipient_id", "actor_name", "type", "is_read", "created_at"];
|
|
15622
15672
|
readonly sort: [{
|
|
15623
15673
|
readonly field: "created_at";
|
|
15624
15674
|
readonly order: "desc";
|
|
@@ -37384,6 +37434,181 @@ declare const SysApprovalRequest: Omit<{
|
|
|
37384
37434
|
readonly index?: boolean | undefined;
|
|
37385
37435
|
readonly type: "textarea";
|
|
37386
37436
|
};
|
|
37437
|
+
readonly process_hash: {
|
|
37438
|
+
readonly readonly?: boolean | undefined;
|
|
37439
|
+
readonly format?: string | undefined;
|
|
37440
|
+
readonly options?: {
|
|
37441
|
+
label: string;
|
|
37442
|
+
value: string;
|
|
37443
|
+
color?: string | undefined;
|
|
37444
|
+
default?: boolean | undefined;
|
|
37445
|
+
}[] | undefined;
|
|
37446
|
+
readonly description?: string | undefined;
|
|
37447
|
+
readonly label?: string | undefined;
|
|
37448
|
+
readonly name?: string | undefined;
|
|
37449
|
+
readonly precision?: number | undefined;
|
|
37450
|
+
readonly required?: boolean | undefined;
|
|
37451
|
+
readonly multiple?: boolean | undefined;
|
|
37452
|
+
readonly dependencies?: string[] | undefined;
|
|
37453
|
+
readonly theme?: string | undefined;
|
|
37454
|
+
readonly externalId?: boolean | undefined;
|
|
37455
|
+
readonly system?: boolean | undefined;
|
|
37456
|
+
readonly min?: number | undefined;
|
|
37457
|
+
readonly max?: number | undefined;
|
|
37458
|
+
readonly group?: string | undefined;
|
|
37459
|
+
readonly encryptionConfig?: {
|
|
37460
|
+
enabled: boolean;
|
|
37461
|
+
algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
|
|
37462
|
+
keyManagement: {
|
|
37463
|
+
provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
|
|
37464
|
+
keyId?: string | undefined;
|
|
37465
|
+
rotationPolicy?: {
|
|
37466
|
+
enabled: boolean;
|
|
37467
|
+
frequencyDays: number;
|
|
37468
|
+
retainOldVersions: number;
|
|
37469
|
+
autoRotate: boolean;
|
|
37470
|
+
} | undefined;
|
|
37471
|
+
};
|
|
37472
|
+
scope: "record" | "field" | "table" | "database";
|
|
37473
|
+
deterministicEncryption: boolean;
|
|
37474
|
+
searchableEncryption: boolean;
|
|
37475
|
+
} | undefined;
|
|
37476
|
+
readonly columnName?: string | undefined;
|
|
37477
|
+
readonly searchable?: boolean | undefined;
|
|
37478
|
+
readonly unique?: boolean | undefined;
|
|
37479
|
+
readonly defaultValue?: unknown;
|
|
37480
|
+
readonly maxLength?: number | undefined;
|
|
37481
|
+
readonly minLength?: number | undefined;
|
|
37482
|
+
readonly scale?: number | undefined;
|
|
37483
|
+
readonly reference?: string | undefined;
|
|
37484
|
+
readonly referenceFilters?: string[] | undefined;
|
|
37485
|
+
readonly writeRequiresMasterRead?: boolean | undefined;
|
|
37486
|
+
readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
|
|
37487
|
+
readonly expression?: {
|
|
37488
|
+
dialect: "cel" | "js" | "cron" | "template";
|
|
37489
|
+
source?: string | undefined;
|
|
37490
|
+
ast?: unknown;
|
|
37491
|
+
meta?: {
|
|
37492
|
+
rationale?: string | undefined;
|
|
37493
|
+
generatedBy?: string | undefined;
|
|
37494
|
+
} | undefined;
|
|
37495
|
+
} | undefined;
|
|
37496
|
+
readonly summaryOperations?: {
|
|
37497
|
+
object: string;
|
|
37498
|
+
field: string;
|
|
37499
|
+
function: "min" | "max" | "count" | "sum" | "avg";
|
|
37500
|
+
} | undefined;
|
|
37501
|
+
readonly language?: string | undefined;
|
|
37502
|
+
readonly lineNumbers?: boolean | undefined;
|
|
37503
|
+
readonly maxRating?: number | undefined;
|
|
37504
|
+
readonly allowHalf?: boolean | undefined;
|
|
37505
|
+
readonly displayMap?: boolean | undefined;
|
|
37506
|
+
readonly allowGeocoding?: boolean | undefined;
|
|
37507
|
+
readonly addressFormat?: "us" | "uk" | "international" | undefined;
|
|
37508
|
+
readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
|
|
37509
|
+
readonly allowAlpha?: boolean | undefined;
|
|
37510
|
+
readonly presetColors?: string[] | undefined;
|
|
37511
|
+
readonly step?: number | undefined;
|
|
37512
|
+
readonly showValue?: boolean | undefined;
|
|
37513
|
+
readonly marks?: Record<string, string> | undefined;
|
|
37514
|
+
readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
|
|
37515
|
+
readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
|
|
37516
|
+
readonly displayValue?: boolean | undefined;
|
|
37517
|
+
readonly allowScanning?: boolean | undefined;
|
|
37518
|
+
readonly currencyConfig?: {
|
|
37519
|
+
precision: number;
|
|
37520
|
+
currencyMode: "fixed" | "dynamic";
|
|
37521
|
+
defaultCurrency: string;
|
|
37522
|
+
} | undefined;
|
|
37523
|
+
readonly vectorConfig?: {
|
|
37524
|
+
dimensions: number;
|
|
37525
|
+
distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
|
|
37526
|
+
normalized: boolean;
|
|
37527
|
+
indexed: boolean;
|
|
37528
|
+
indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
|
|
37529
|
+
} | undefined;
|
|
37530
|
+
readonly fileAttachmentConfig?: {
|
|
37531
|
+
virusScan: boolean;
|
|
37532
|
+
virusScanOnUpload: boolean;
|
|
37533
|
+
quarantineOnThreat: boolean;
|
|
37534
|
+
allowMultiple: boolean;
|
|
37535
|
+
allowReplace: boolean;
|
|
37536
|
+
allowDelete: boolean;
|
|
37537
|
+
requireUpload: boolean;
|
|
37538
|
+
extractMetadata: boolean;
|
|
37539
|
+
extractText: boolean;
|
|
37540
|
+
versioningEnabled: boolean;
|
|
37541
|
+
publicRead: boolean;
|
|
37542
|
+
presignedUrlExpiry: number;
|
|
37543
|
+
minSize?: number | undefined;
|
|
37544
|
+
maxSize?: number | undefined;
|
|
37545
|
+
allowedTypes?: string[] | undefined;
|
|
37546
|
+
blockedTypes?: string[] | undefined;
|
|
37547
|
+
allowedMimeTypes?: string[] | undefined;
|
|
37548
|
+
blockedMimeTypes?: string[] | undefined;
|
|
37549
|
+
virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
|
|
37550
|
+
storageProvider?: string | undefined;
|
|
37551
|
+
storageBucket?: string | undefined;
|
|
37552
|
+
storagePrefix?: string | undefined;
|
|
37553
|
+
imageValidation?: {
|
|
37554
|
+
generateThumbnails: boolean;
|
|
37555
|
+
preserveMetadata: boolean;
|
|
37556
|
+
autoRotate: boolean;
|
|
37557
|
+
minWidth?: number | undefined;
|
|
37558
|
+
maxWidth?: number | undefined;
|
|
37559
|
+
minHeight?: number | undefined;
|
|
37560
|
+
maxHeight?: number | undefined;
|
|
37561
|
+
aspectRatio?: string | undefined;
|
|
37562
|
+
thumbnailSizes?: {
|
|
37563
|
+
name: string;
|
|
37564
|
+
width: number;
|
|
37565
|
+
height: number;
|
|
37566
|
+
crop: boolean;
|
|
37567
|
+
}[] | undefined;
|
|
37568
|
+
} | undefined;
|
|
37569
|
+
maxVersions?: number | undefined;
|
|
37570
|
+
} | undefined;
|
|
37571
|
+
readonly maskingRule?: {
|
|
37572
|
+
field: string;
|
|
37573
|
+
strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
|
|
37574
|
+
preserveFormat: boolean;
|
|
37575
|
+
preserveLength: boolean;
|
|
37576
|
+
pattern?: string | undefined;
|
|
37577
|
+
roles?: string[] | undefined;
|
|
37578
|
+
exemptRoles?: string[] | undefined;
|
|
37579
|
+
} | undefined;
|
|
37580
|
+
readonly auditTrail?: boolean | undefined;
|
|
37581
|
+
readonly cached?: {
|
|
37582
|
+
enabled: boolean;
|
|
37583
|
+
ttl: number;
|
|
37584
|
+
invalidateOn: string[];
|
|
37585
|
+
} | undefined;
|
|
37586
|
+
readonly dataQuality?: {
|
|
37587
|
+
uniqueness: boolean;
|
|
37588
|
+
completeness: number;
|
|
37589
|
+
accuracy?: {
|
|
37590
|
+
source: string;
|
|
37591
|
+
threshold: number;
|
|
37592
|
+
} | undefined;
|
|
37593
|
+
} | undefined;
|
|
37594
|
+
readonly conditionalRequired?: {
|
|
37595
|
+
dialect: "cel" | "js" | "cron" | "template";
|
|
37596
|
+
source?: string | undefined;
|
|
37597
|
+
ast?: unknown;
|
|
37598
|
+
meta?: {
|
|
37599
|
+
rationale?: string | undefined;
|
|
37600
|
+
generatedBy?: string | undefined;
|
|
37601
|
+
} | undefined;
|
|
37602
|
+
} | undefined;
|
|
37603
|
+
readonly hidden?: boolean | undefined;
|
|
37604
|
+
readonly sortable?: boolean | undefined;
|
|
37605
|
+
readonly inlineHelpText?: string | undefined;
|
|
37606
|
+
readonly trackFeedHistory?: boolean | undefined;
|
|
37607
|
+
readonly caseSensitive?: boolean | undefined;
|
|
37608
|
+
readonly autonumberFormat?: string | undefined;
|
|
37609
|
+
readonly index?: boolean | undefined;
|
|
37610
|
+
readonly type: "text";
|
|
37611
|
+
};
|
|
37387
37612
|
readonly completed_at: {
|
|
37388
37613
|
readonly readonly?: boolean | undefined;
|
|
37389
37614
|
readonly format?: string | undefined;
|
package/dist/audit/index.d.ts
CHANGED
|
@@ -15557,6 +15557,49 @@ declare const SysNotification: Omit<{
|
|
|
15557
15557
|
readonly displayNameField: "title";
|
|
15558
15558
|
readonly titleFormat: "{title}";
|
|
15559
15559
|
readonly compactLayout: ["title", "type", "is_read", "created_at"];
|
|
15560
|
+
/**
|
|
15561
|
+
* Row-level inbox actions. Use `visible` CEL expressions to ensure
|
|
15562
|
+
* `mark_read` only shows on unread rows and vice-versa, mirroring the
|
|
15563
|
+
* mark-as-read affordances in GitHub / Linear inboxes. The toolbar-level
|
|
15564
|
+
* `mark_all_read` is intentionally omitted server-side: it requires a
|
|
15565
|
+
* bulk update primitive that doesn't yet exist on the REST surface, and
|
|
15566
|
+
* the popover already handles the multi-row case client-side via N
|
|
15567
|
+
* single-row PATCHes (see `InboxPopover.tsx` -> AppHeader `markAllRead`).
|
|
15568
|
+
*/
|
|
15569
|
+
readonly actions: [{
|
|
15570
|
+
readonly name: "mark_read";
|
|
15571
|
+
readonly label: "Mark as Read";
|
|
15572
|
+
readonly icon: "check";
|
|
15573
|
+
readonly variant: "secondary";
|
|
15574
|
+
readonly mode: "custom";
|
|
15575
|
+
readonly locations: ["list_item"];
|
|
15576
|
+
readonly type: "api";
|
|
15577
|
+
readonly method: "PATCH";
|
|
15578
|
+
readonly target: "/api/v1/data/sys_notification/{id}";
|
|
15579
|
+
readonly bodyExtra: {
|
|
15580
|
+
readonly is_read: true;
|
|
15581
|
+
};
|
|
15582
|
+
readonly visible: "!record.is_read";
|
|
15583
|
+
readonly successMessage: "Notification marked as read";
|
|
15584
|
+
readonly refreshAfter: true;
|
|
15585
|
+
}, {
|
|
15586
|
+
readonly name: "mark_unread";
|
|
15587
|
+
readonly label: "Mark as Unread";
|
|
15588
|
+
readonly icon: "bell-dot";
|
|
15589
|
+
readonly variant: "secondary";
|
|
15590
|
+
readonly mode: "custom";
|
|
15591
|
+
readonly locations: ["list_item"];
|
|
15592
|
+
readonly type: "api";
|
|
15593
|
+
readonly method: "PATCH";
|
|
15594
|
+
readonly target: "/api/v1/data/sys_notification/{id}";
|
|
15595
|
+
readonly bodyExtra: {
|
|
15596
|
+
readonly is_read: false;
|
|
15597
|
+
readonly read_at: null;
|
|
15598
|
+
};
|
|
15599
|
+
readonly visible: "record.is_read";
|
|
15600
|
+
readonly successMessage: "Notification marked as unread";
|
|
15601
|
+
readonly refreshAfter: true;
|
|
15602
|
+
}];
|
|
15560
15603
|
readonly listViews: {
|
|
15561
15604
|
readonly unread: {
|
|
15562
15605
|
readonly type: "grid";
|
|
@@ -15566,7 +15609,7 @@ declare const SysNotification: Omit<{
|
|
|
15566
15609
|
readonly provider: "object";
|
|
15567
15610
|
readonly object: "sys_notification";
|
|
15568
15611
|
};
|
|
15569
|
-
readonly columns: ["
|
|
15612
|
+
readonly columns: ["title", "actor_name", "type", "created_at"];
|
|
15570
15613
|
readonly filter: [{
|
|
15571
15614
|
readonly field: "recipient_id";
|
|
15572
15615
|
readonly operator: "equals";
|
|
@@ -15596,7 +15639,7 @@ declare const SysNotification: Omit<{
|
|
|
15596
15639
|
readonly provider: "object";
|
|
15597
15640
|
readonly object: "sys_notification";
|
|
15598
15641
|
};
|
|
15599
|
-
readonly columns: ["
|
|
15642
|
+
readonly columns: ["title", "actor_name", "type", "is_read", "created_at"];
|
|
15600
15643
|
readonly filter: [{
|
|
15601
15644
|
readonly field: "recipient_id";
|
|
15602
15645
|
readonly operator: "equals";
|
|
@@ -15609,6 +15652,13 @@ declare const SysNotification: Omit<{
|
|
|
15609
15652
|
readonly pagination: {
|
|
15610
15653
|
readonly pageSize: 50;
|
|
15611
15654
|
};
|
|
15655
|
+
readonly grouping: {
|
|
15656
|
+
readonly fields: [{
|
|
15657
|
+
readonly field: "type";
|
|
15658
|
+
readonly order: "asc";
|
|
15659
|
+
readonly collapsed: false;
|
|
15660
|
+
}];
|
|
15661
|
+
};
|
|
15612
15662
|
};
|
|
15613
15663
|
readonly all_notifications: {
|
|
15614
15664
|
readonly type: "grid";
|
|
@@ -15618,7 +15668,7 @@ declare const SysNotification: Omit<{
|
|
|
15618
15668
|
readonly provider: "object";
|
|
15619
15669
|
readonly object: "sys_notification";
|
|
15620
15670
|
};
|
|
15621
|
-
readonly columns: ["
|
|
15671
|
+
readonly columns: ["title", "recipient_id", "actor_name", "type", "is_read", "created_at"];
|
|
15622
15672
|
readonly sort: [{
|
|
15623
15673
|
readonly field: "created_at";
|
|
15624
15674
|
readonly order: "desc";
|
|
@@ -37384,6 +37434,181 @@ declare const SysApprovalRequest: Omit<{
|
|
|
37384
37434
|
readonly index?: boolean | undefined;
|
|
37385
37435
|
readonly type: "textarea";
|
|
37386
37436
|
};
|
|
37437
|
+
readonly process_hash: {
|
|
37438
|
+
readonly readonly?: boolean | undefined;
|
|
37439
|
+
readonly format?: string | undefined;
|
|
37440
|
+
readonly options?: {
|
|
37441
|
+
label: string;
|
|
37442
|
+
value: string;
|
|
37443
|
+
color?: string | undefined;
|
|
37444
|
+
default?: boolean | undefined;
|
|
37445
|
+
}[] | undefined;
|
|
37446
|
+
readonly description?: string | undefined;
|
|
37447
|
+
readonly label?: string | undefined;
|
|
37448
|
+
readonly name?: string | undefined;
|
|
37449
|
+
readonly precision?: number | undefined;
|
|
37450
|
+
readonly required?: boolean | undefined;
|
|
37451
|
+
readonly multiple?: boolean | undefined;
|
|
37452
|
+
readonly dependencies?: string[] | undefined;
|
|
37453
|
+
readonly theme?: string | undefined;
|
|
37454
|
+
readonly externalId?: boolean | undefined;
|
|
37455
|
+
readonly system?: boolean | undefined;
|
|
37456
|
+
readonly min?: number | undefined;
|
|
37457
|
+
readonly max?: number | undefined;
|
|
37458
|
+
readonly group?: string | undefined;
|
|
37459
|
+
readonly encryptionConfig?: {
|
|
37460
|
+
enabled: boolean;
|
|
37461
|
+
algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
|
|
37462
|
+
keyManagement: {
|
|
37463
|
+
provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
|
|
37464
|
+
keyId?: string | undefined;
|
|
37465
|
+
rotationPolicy?: {
|
|
37466
|
+
enabled: boolean;
|
|
37467
|
+
frequencyDays: number;
|
|
37468
|
+
retainOldVersions: number;
|
|
37469
|
+
autoRotate: boolean;
|
|
37470
|
+
} | undefined;
|
|
37471
|
+
};
|
|
37472
|
+
scope: "record" | "field" | "table" | "database";
|
|
37473
|
+
deterministicEncryption: boolean;
|
|
37474
|
+
searchableEncryption: boolean;
|
|
37475
|
+
} | undefined;
|
|
37476
|
+
readonly columnName?: string | undefined;
|
|
37477
|
+
readonly searchable?: boolean | undefined;
|
|
37478
|
+
readonly unique?: boolean | undefined;
|
|
37479
|
+
readonly defaultValue?: unknown;
|
|
37480
|
+
readonly maxLength?: number | undefined;
|
|
37481
|
+
readonly minLength?: number | undefined;
|
|
37482
|
+
readonly scale?: number | undefined;
|
|
37483
|
+
readonly reference?: string | undefined;
|
|
37484
|
+
readonly referenceFilters?: string[] | undefined;
|
|
37485
|
+
readonly writeRequiresMasterRead?: boolean | undefined;
|
|
37486
|
+
readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
|
|
37487
|
+
readonly expression?: {
|
|
37488
|
+
dialect: "cel" | "js" | "cron" | "template";
|
|
37489
|
+
source?: string | undefined;
|
|
37490
|
+
ast?: unknown;
|
|
37491
|
+
meta?: {
|
|
37492
|
+
rationale?: string | undefined;
|
|
37493
|
+
generatedBy?: string | undefined;
|
|
37494
|
+
} | undefined;
|
|
37495
|
+
} | undefined;
|
|
37496
|
+
readonly summaryOperations?: {
|
|
37497
|
+
object: string;
|
|
37498
|
+
field: string;
|
|
37499
|
+
function: "min" | "max" | "count" | "sum" | "avg";
|
|
37500
|
+
} | undefined;
|
|
37501
|
+
readonly language?: string | undefined;
|
|
37502
|
+
readonly lineNumbers?: boolean | undefined;
|
|
37503
|
+
readonly maxRating?: number | undefined;
|
|
37504
|
+
readonly allowHalf?: boolean | undefined;
|
|
37505
|
+
readonly displayMap?: boolean | undefined;
|
|
37506
|
+
readonly allowGeocoding?: boolean | undefined;
|
|
37507
|
+
readonly addressFormat?: "us" | "uk" | "international" | undefined;
|
|
37508
|
+
readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
|
|
37509
|
+
readonly allowAlpha?: boolean | undefined;
|
|
37510
|
+
readonly presetColors?: string[] | undefined;
|
|
37511
|
+
readonly step?: number | undefined;
|
|
37512
|
+
readonly showValue?: boolean | undefined;
|
|
37513
|
+
readonly marks?: Record<string, string> | undefined;
|
|
37514
|
+
readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
|
|
37515
|
+
readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
|
|
37516
|
+
readonly displayValue?: boolean | undefined;
|
|
37517
|
+
readonly allowScanning?: boolean | undefined;
|
|
37518
|
+
readonly currencyConfig?: {
|
|
37519
|
+
precision: number;
|
|
37520
|
+
currencyMode: "fixed" | "dynamic";
|
|
37521
|
+
defaultCurrency: string;
|
|
37522
|
+
} | undefined;
|
|
37523
|
+
readonly vectorConfig?: {
|
|
37524
|
+
dimensions: number;
|
|
37525
|
+
distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
|
|
37526
|
+
normalized: boolean;
|
|
37527
|
+
indexed: boolean;
|
|
37528
|
+
indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
|
|
37529
|
+
} | undefined;
|
|
37530
|
+
readonly fileAttachmentConfig?: {
|
|
37531
|
+
virusScan: boolean;
|
|
37532
|
+
virusScanOnUpload: boolean;
|
|
37533
|
+
quarantineOnThreat: boolean;
|
|
37534
|
+
allowMultiple: boolean;
|
|
37535
|
+
allowReplace: boolean;
|
|
37536
|
+
allowDelete: boolean;
|
|
37537
|
+
requireUpload: boolean;
|
|
37538
|
+
extractMetadata: boolean;
|
|
37539
|
+
extractText: boolean;
|
|
37540
|
+
versioningEnabled: boolean;
|
|
37541
|
+
publicRead: boolean;
|
|
37542
|
+
presignedUrlExpiry: number;
|
|
37543
|
+
minSize?: number | undefined;
|
|
37544
|
+
maxSize?: number | undefined;
|
|
37545
|
+
allowedTypes?: string[] | undefined;
|
|
37546
|
+
blockedTypes?: string[] | undefined;
|
|
37547
|
+
allowedMimeTypes?: string[] | undefined;
|
|
37548
|
+
blockedMimeTypes?: string[] | undefined;
|
|
37549
|
+
virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
|
|
37550
|
+
storageProvider?: string | undefined;
|
|
37551
|
+
storageBucket?: string | undefined;
|
|
37552
|
+
storagePrefix?: string | undefined;
|
|
37553
|
+
imageValidation?: {
|
|
37554
|
+
generateThumbnails: boolean;
|
|
37555
|
+
preserveMetadata: boolean;
|
|
37556
|
+
autoRotate: boolean;
|
|
37557
|
+
minWidth?: number | undefined;
|
|
37558
|
+
maxWidth?: number | undefined;
|
|
37559
|
+
minHeight?: number | undefined;
|
|
37560
|
+
maxHeight?: number | undefined;
|
|
37561
|
+
aspectRatio?: string | undefined;
|
|
37562
|
+
thumbnailSizes?: {
|
|
37563
|
+
name: string;
|
|
37564
|
+
width: number;
|
|
37565
|
+
height: number;
|
|
37566
|
+
crop: boolean;
|
|
37567
|
+
}[] | undefined;
|
|
37568
|
+
} | undefined;
|
|
37569
|
+
maxVersions?: number | undefined;
|
|
37570
|
+
} | undefined;
|
|
37571
|
+
readonly maskingRule?: {
|
|
37572
|
+
field: string;
|
|
37573
|
+
strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
|
|
37574
|
+
preserveFormat: boolean;
|
|
37575
|
+
preserveLength: boolean;
|
|
37576
|
+
pattern?: string | undefined;
|
|
37577
|
+
roles?: string[] | undefined;
|
|
37578
|
+
exemptRoles?: string[] | undefined;
|
|
37579
|
+
} | undefined;
|
|
37580
|
+
readonly auditTrail?: boolean | undefined;
|
|
37581
|
+
readonly cached?: {
|
|
37582
|
+
enabled: boolean;
|
|
37583
|
+
ttl: number;
|
|
37584
|
+
invalidateOn: string[];
|
|
37585
|
+
} | undefined;
|
|
37586
|
+
readonly dataQuality?: {
|
|
37587
|
+
uniqueness: boolean;
|
|
37588
|
+
completeness: number;
|
|
37589
|
+
accuracy?: {
|
|
37590
|
+
source: string;
|
|
37591
|
+
threshold: number;
|
|
37592
|
+
} | undefined;
|
|
37593
|
+
} | undefined;
|
|
37594
|
+
readonly conditionalRequired?: {
|
|
37595
|
+
dialect: "cel" | "js" | "cron" | "template";
|
|
37596
|
+
source?: string | undefined;
|
|
37597
|
+
ast?: unknown;
|
|
37598
|
+
meta?: {
|
|
37599
|
+
rationale?: string | undefined;
|
|
37600
|
+
generatedBy?: string | undefined;
|
|
37601
|
+
} | undefined;
|
|
37602
|
+
} | undefined;
|
|
37603
|
+
readonly hidden?: boolean | undefined;
|
|
37604
|
+
readonly sortable?: boolean | undefined;
|
|
37605
|
+
readonly inlineHelpText?: string | undefined;
|
|
37606
|
+
readonly trackFeedHistory?: boolean | undefined;
|
|
37607
|
+
readonly caseSensitive?: boolean | undefined;
|
|
37608
|
+
readonly autonumberFormat?: string | undefined;
|
|
37609
|
+
readonly index?: boolean | undefined;
|
|
37610
|
+
readonly type: "text";
|
|
37611
|
+
};
|
|
37387
37612
|
readonly completed_at: {
|
|
37388
37613
|
readonly readonly?: boolean | undefined;
|
|
37389
37614
|
readonly format?: string | undefined;
|
package/dist/audit/index.js
CHANGED
|
@@ -666,13 +666,56 @@ var SysNotification = data.ObjectSchema.create({
|
|
|
666
666
|
displayNameField: "title",
|
|
667
667
|
titleFormat: "{title}",
|
|
668
668
|
compactLayout: ["title", "type", "is_read", "created_at"],
|
|
669
|
+
/**
|
|
670
|
+
* Row-level inbox actions. Use `visible` CEL expressions to ensure
|
|
671
|
+
* `mark_read` only shows on unread rows and vice-versa, mirroring the
|
|
672
|
+
* mark-as-read affordances in GitHub / Linear inboxes. The toolbar-level
|
|
673
|
+
* `mark_all_read` is intentionally omitted server-side: it requires a
|
|
674
|
+
* bulk update primitive that doesn't yet exist on the REST surface, and
|
|
675
|
+
* the popover already handles the multi-row case client-side via N
|
|
676
|
+
* single-row PATCHes (see `InboxPopover.tsx` -> AppHeader `markAllRead`).
|
|
677
|
+
*/
|
|
678
|
+
actions: [
|
|
679
|
+
{
|
|
680
|
+
name: "mark_read",
|
|
681
|
+
label: "Mark as Read",
|
|
682
|
+
icon: "check",
|
|
683
|
+
variant: "secondary",
|
|
684
|
+
mode: "custom",
|
|
685
|
+
locations: ["list_item"],
|
|
686
|
+
type: "api",
|
|
687
|
+
method: "PATCH",
|
|
688
|
+
target: "/api/v1/data/sys_notification/{id}",
|
|
689
|
+
bodyExtra: { is_read: true },
|
|
690
|
+
visible: "!record.is_read",
|
|
691
|
+
successMessage: "Notification marked as read",
|
|
692
|
+
refreshAfter: true
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
name: "mark_unread",
|
|
696
|
+
label: "Mark as Unread",
|
|
697
|
+
icon: "bell-dot",
|
|
698
|
+
variant: "secondary",
|
|
699
|
+
mode: "custom",
|
|
700
|
+
locations: ["list_item"],
|
|
701
|
+
type: "api",
|
|
702
|
+
method: "PATCH",
|
|
703
|
+
target: "/api/v1/data/sys_notification/{id}",
|
|
704
|
+
bodyExtra: { is_read: false, read_at: null },
|
|
705
|
+
visible: "record.is_read",
|
|
706
|
+
successMessage: "Notification marked as unread",
|
|
707
|
+
refreshAfter: true
|
|
708
|
+
}
|
|
709
|
+
],
|
|
669
710
|
listViews: {
|
|
670
711
|
unread: {
|
|
671
712
|
type: "grid",
|
|
672
713
|
name: "unread",
|
|
673
714
|
label: "Unread",
|
|
674
715
|
data: { provider: "object", object: "sys_notification" },
|
|
675
|
-
|
|
716
|
+
// Title + actor first (the "who/what" the user actually scans);
|
|
717
|
+
// type stays as a categorising chip; created_at right-aligned.
|
|
718
|
+
columns: ["title", "actor_name", "type", "created_at"],
|
|
676
719
|
filter: [
|
|
677
720
|
{ field: "recipient_id", operator: "equals", value: "{current_user_id}" },
|
|
678
721
|
{ field: "is_read", operator: "equals", value: false }
|
|
@@ -686,17 +729,21 @@ var SysNotification = data.ObjectSchema.create({
|
|
|
686
729
|
name: "mine",
|
|
687
730
|
label: "Mine",
|
|
688
731
|
data: { provider: "object", object: "sys_notification" },
|
|
689
|
-
columns: ["
|
|
732
|
+
columns: ["title", "actor_name", "type", "is_read", "created_at"],
|
|
690
733
|
filter: [{ field: "recipient_id", operator: "equals", value: "{current_user_id}" }],
|
|
691
734
|
sort: [{ field: "created_at", order: "desc" }],
|
|
692
|
-
pagination: { pageSize: 50 }
|
|
735
|
+
pagination: { pageSize: 50 },
|
|
736
|
+
// Group by notification category so mention/assignment storms don't
|
|
737
|
+
// hide system or task_due rows. Users still toggle to flat via the
|
|
738
|
+
// toolbar Group control if they prefer chronology only.
|
|
739
|
+
grouping: { fields: [{ field: "type", order: "asc", collapsed: false }] }
|
|
693
740
|
},
|
|
694
741
|
all_notifications: {
|
|
695
742
|
type: "grid",
|
|
696
743
|
name: "all_notifications",
|
|
697
744
|
label: "All",
|
|
698
745
|
data: { provider: "object", object: "sys_notification" },
|
|
699
|
-
columns: ["
|
|
746
|
+
columns: ["title", "recipient_id", "actor_name", "type", "is_read", "created_at"],
|
|
700
747
|
sort: [{ field: "created_at", order: "desc" }],
|
|
701
748
|
pagination: { pageSize: 100 }
|
|
702
749
|
}
|
|
@@ -1549,6 +1596,14 @@ var SysApprovalRequest = data.ObjectSchema.create({
|
|
|
1549
1596
|
description: "Record snapshot at submission time",
|
|
1550
1597
|
group: "State"
|
|
1551
1598
|
}),
|
|
1599
|
+
process_hash: data.Field.text({
|
|
1600
|
+
label: "Process Hash",
|
|
1601
|
+
required: false,
|
|
1602
|
+
maxLength: 80,
|
|
1603
|
+
readonly: true,
|
|
1604
|
+
description: "sha256 of the approval process body at submit time (ADR-0009 execution pinning). Resolved through sys_metadata_history so process upgrades do not affect in-flight requests.",
|
|
1605
|
+
group: "State"
|
|
1606
|
+
}),
|
|
1552
1607
|
completed_at: data.Field.datetime({
|
|
1553
1608
|
label: "Completed At",
|
|
1554
1609
|
required: false,
|