@substrat-run/contracts 0.138.0 → 0.139.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/control-plane.d.ts +115 -0
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +84 -0
- package/dist/control-plane.js.map +1 -1
- package/dist/deploy.d.ts +12 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/entity-state.d.ts +95 -0
- package/dist/entity-state.d.ts.map +1 -0
- package/dist/entity-state.js +79 -0
- package/dist/entity-state.js.map +1 -0
- package/dist/findings.d.ts +208 -0
- package/dist/findings.d.ts.map +1 -0
- package/dist/findings.js +116 -0
- package/dist/findings.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel-events.d.ts.map +1 -1
- package/dist/kernel-events.js +5 -0
- package/dist/kernel-events.js.map +1 -1
- package/dist/manifest.d.ts +7 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +7 -0
- package/dist/manifest.js.map +1 -1
- package/dist/model.d.ts +52 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +39 -0
- package/dist/model.js.map +1 -1
- package/dist/permission.d.ts +6 -0
- package/dist/permission.d.ts.map +1 -1
- package/dist/permission.js +6 -0
- package/dist/permission.js.map +1 -1
- package/dist/sql-tokens.d.ts +9 -1
- package/dist/sql-tokens.d.ts.map +1 -1
- package/dist/sql-tokens.js +4 -1
- package/dist/sql-tokens.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity archive and trash (#119) — the vocabulary the kernel and a module share.
|
|
3
|
+
*
|
|
4
|
+
* Three different acts get habitually conflated, and only one of them lives here:
|
|
5
|
+
*
|
|
6
|
+
* - **Subject erasure** (#37, K-37) removes a person's data from everywhere the platform can
|
|
7
|
+
* reach, history included. Not reversible, and not about an entity.
|
|
8
|
+
* - **Tenant delete and retention** (#36) removes a whole tenant after a grace window. Not
|
|
9
|
+
* about an entity either.
|
|
10
|
+
* - **Archive and trash** — this — hide ONE entity from active views and keep it. Both are
|
|
11
|
+
* reversible, both keep the row, and neither touches history: the events about the entity
|
|
12
|
+
* stay exactly as they were.
|
|
13
|
+
*
|
|
14
|
+
* Archive and trash are deliberately two acts with two permission keys. Archive says "done
|
|
15
|
+
* with this, keep it": the row stays readable through the entity's ordinary read authority.
|
|
16
|
+
* Trash says "I meant to delete this": the row stays recoverable, but only someone holding
|
|
17
|
+
* the declared trash key can see it or bring it back.
|
|
18
|
+
*
|
|
19
|
+
* ## The state is two columns, and the visible state is derived from them
|
|
20
|
+
*
|
|
21
|
+
* An entity that declares either one gets kernel-owned columns on its own table,
|
|
22
|
+
* `_substrat_archived_at` and `_substrat_trashed_at`. Stored apart rather than as one enum,
|
|
23
|
+
* so trash never forgets an archive: trashing an archived row and restoring it brings it back
|
|
24
|
+
* archived, never silently into the active view. What a reader sees is one state, derived:
|
|
25
|
+
*
|
|
26
|
+
* trashed when `_substrat_trashed_at` is set
|
|
27
|
+
* archived else when `_substrat_archived_at` is set
|
|
28
|
+
* active otherwise
|
|
29
|
+
*/
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
/** The state an archivable or trashable entity is in, as a reader sees it. */
|
|
32
|
+
export declare const entityStateName: z.ZodEnum<{
|
|
33
|
+
active: "active";
|
|
34
|
+
archived: "archived";
|
|
35
|
+
trashed: "trashed";
|
|
36
|
+
}>;
|
|
37
|
+
export type EntityStateName = z.infer<typeof entityStateName>;
|
|
38
|
+
/** The kernel-owned column that records an archive. */
|
|
39
|
+
export declare const ARCHIVED_AT_COLUMN = "_substrat_archived_at";
|
|
40
|
+
/** The kernel-owned column that records a trash. */
|
|
41
|
+
export declare const TRASHED_AT_COLUMN = "_substrat_trashed_at";
|
|
42
|
+
/**
|
|
43
|
+
* One entity's declaration, as the manifest carries it.
|
|
44
|
+
*
|
|
45
|
+
* Written into a model as `archive: { permission }` / `trash: { permission }` on the entity
|
|
46
|
+
* (`defineEntities`); `manifestEntities()` turns that into this and fills in `table` and
|
|
47
|
+
* `idColumn` from the registry, as it does for `searchables`. A hand-written manifest (an
|
|
48
|
+
* engine's) may declare it directly.
|
|
49
|
+
*
|
|
50
|
+
* `archivePermission` gates `ctx.archive` and `ctx.unarchive`; `trashPermission` gates
|
|
51
|
+
* `ctx.trash`, `ctx.restore` and the trashed readers. At least one is required. A key here
|
|
52
|
+
* must be one the module declares.
|
|
53
|
+
*/
|
|
54
|
+
export declare const entityStateDeclaration: z.ZodObject<{
|
|
55
|
+
entityType: z.ZodString;
|
|
56
|
+
archivePermission: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "PermissionKey", "out">>;
|
|
57
|
+
trashPermission: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "PermissionKey", "out">>;
|
|
58
|
+
table: z.ZodOptional<z.ZodString>;
|
|
59
|
+
idColumn: z.ZodOptional<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export type EntityStateDeclaration = z.infer<typeof entityStateDeclaration>;
|
|
62
|
+
/** `ctx.archive` moved an entity out of the active view. Entity: the entity. */
|
|
63
|
+
export declare const ENTITY_ARCHIVED = "entity.archived";
|
|
64
|
+
/** `ctx.unarchive` brought an archived entity back. Entity: the entity. */
|
|
65
|
+
export declare const ENTITY_UNARCHIVED = "entity.unarchived";
|
|
66
|
+
/** `ctx.trash` moved an entity into the trash. Entity: the entity. */
|
|
67
|
+
export declare const ENTITY_TRASHED = "entity.trashed";
|
|
68
|
+
/** `ctx.restore` took an entity out of the trash, back to the state it was trashed from. */
|
|
69
|
+
export declare const ENTITY_RESTORED = "entity.restored";
|
|
70
|
+
/**
|
|
71
|
+
* The one payload all four carry: the entity, and the visible state before and after.
|
|
72
|
+
*
|
|
73
|
+
* Who did it and when are not here — they are the envelope's actor and `occurredAt`, stamped
|
|
74
|
+
* by the kernel, with the K-34 authorization chain beside them. `from` and `to` are the
|
|
75
|
+
* derived states, so `entity.restored` says where the entity went back to (`active` or
|
|
76
|
+
* `archived`) without the reader having to replay anything.
|
|
77
|
+
*/
|
|
78
|
+
export declare const entityStateChangedPayload: z.ZodObject<{
|
|
79
|
+
entity: z.ZodObject<{
|
|
80
|
+
entityType: z.ZodString;
|
|
81
|
+
entityId: z.ZodString;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
from: z.ZodEnum<{
|
|
84
|
+
active: "active";
|
|
85
|
+
archived: "archived";
|
|
86
|
+
trashed: "trashed";
|
|
87
|
+
}>;
|
|
88
|
+
to: z.ZodEnum<{
|
|
89
|
+
active: "active";
|
|
90
|
+
archived: "archived";
|
|
91
|
+
trashed: "trashed";
|
|
92
|
+
}>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
export type EntityStateChangedPayload = z.infer<typeof entityStateChangedPayload>;
|
|
95
|
+
//# sourceMappingURL=entity-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-state.d.ts","sourceRoot":"","sources":["../src/entity-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,8EAA8E;AAC9E,eAAO,MAAM,eAAe;;;;EAA4C,CAAC;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAC1D,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,gFAAgF;AAChF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,sEAAsE;AACtE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,4FAA4F;AAC5F,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity archive and trash (#119) — the vocabulary the kernel and a module share.
|
|
3
|
+
*
|
|
4
|
+
* Three different acts get habitually conflated, and only one of them lives here:
|
|
5
|
+
*
|
|
6
|
+
* - **Subject erasure** (#37, K-37) removes a person's data from everywhere the platform can
|
|
7
|
+
* reach, history included. Not reversible, and not about an entity.
|
|
8
|
+
* - **Tenant delete and retention** (#36) removes a whole tenant after a grace window. Not
|
|
9
|
+
* about an entity either.
|
|
10
|
+
* - **Archive and trash** — this — hide ONE entity from active views and keep it. Both are
|
|
11
|
+
* reversible, both keep the row, and neither touches history: the events about the entity
|
|
12
|
+
* stay exactly as they were.
|
|
13
|
+
*
|
|
14
|
+
* Archive and trash are deliberately two acts with two permission keys. Archive says "done
|
|
15
|
+
* with this, keep it": the row stays readable through the entity's ordinary read authority.
|
|
16
|
+
* Trash says "I meant to delete this": the row stays recoverable, but only someone holding
|
|
17
|
+
* the declared trash key can see it or bring it back.
|
|
18
|
+
*
|
|
19
|
+
* ## The state is two columns, and the visible state is derived from them
|
|
20
|
+
*
|
|
21
|
+
* An entity that declares either one gets kernel-owned columns on its own table,
|
|
22
|
+
* `_substrat_archived_at` and `_substrat_trashed_at`. Stored apart rather than as one enum,
|
|
23
|
+
* so trash never forgets an archive: trashing an archived row and restoring it brings it back
|
|
24
|
+
* archived, never silently into the active view. What a reader sees is one state, derived:
|
|
25
|
+
*
|
|
26
|
+
* trashed when `_substrat_trashed_at` is set
|
|
27
|
+
* archived else when `_substrat_archived_at` is set
|
|
28
|
+
* active otherwise
|
|
29
|
+
*/
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
import { entityRef } from './events.js';
|
|
32
|
+
import { permissionKey } from './ids.js';
|
|
33
|
+
/** The state an archivable or trashable entity is in, as a reader sees it. */
|
|
34
|
+
export const entityStateName = z.enum(['active', 'archived', 'trashed']);
|
|
35
|
+
/** The kernel-owned column that records an archive. */
|
|
36
|
+
export const ARCHIVED_AT_COLUMN = '_substrat_archived_at';
|
|
37
|
+
/** The kernel-owned column that records a trash. */
|
|
38
|
+
export const TRASHED_AT_COLUMN = '_substrat_trashed_at';
|
|
39
|
+
/**
|
|
40
|
+
* One entity's declaration, as the manifest carries it.
|
|
41
|
+
*
|
|
42
|
+
* Written into a model as `archive: { permission }` / `trash: { permission }` on the entity
|
|
43
|
+
* (`defineEntities`); `manifestEntities()` turns that into this and fills in `table` and
|
|
44
|
+
* `idColumn` from the registry, as it does for `searchables`. A hand-written manifest (an
|
|
45
|
+
* engine's) may declare it directly.
|
|
46
|
+
*
|
|
47
|
+
* `archivePermission` gates `ctx.archive` and `ctx.unarchive`; `trashPermission` gates
|
|
48
|
+
* `ctx.trash`, `ctx.restore` and the trashed readers. At least one is required. A key here
|
|
49
|
+
* must be one the module declares.
|
|
50
|
+
*/
|
|
51
|
+
export const entityStateDeclaration = z.object({
|
|
52
|
+
entityType: z.string().min(1),
|
|
53
|
+
archivePermission: permissionKey.optional(),
|
|
54
|
+
trashPermission: permissionKey.optional(),
|
|
55
|
+
table: z.string().min(1).optional(),
|
|
56
|
+
idColumn: z.string().min(1).optional(),
|
|
57
|
+
});
|
|
58
|
+
/** `ctx.archive` moved an entity out of the active view. Entity: the entity. */
|
|
59
|
+
export const ENTITY_ARCHIVED = 'entity.archived';
|
|
60
|
+
/** `ctx.unarchive` brought an archived entity back. Entity: the entity. */
|
|
61
|
+
export const ENTITY_UNARCHIVED = 'entity.unarchived';
|
|
62
|
+
/** `ctx.trash` moved an entity into the trash. Entity: the entity. */
|
|
63
|
+
export const ENTITY_TRASHED = 'entity.trashed';
|
|
64
|
+
/** `ctx.restore` took an entity out of the trash, back to the state it was trashed from. */
|
|
65
|
+
export const ENTITY_RESTORED = 'entity.restored';
|
|
66
|
+
/**
|
|
67
|
+
* The one payload all four carry: the entity, and the visible state before and after.
|
|
68
|
+
*
|
|
69
|
+
* Who did it and when are not here — they are the envelope's actor and `occurredAt`, stamped
|
|
70
|
+
* by the kernel, with the K-34 authorization chain beside them. `from` and `to` are the
|
|
71
|
+
* derived states, so `entity.restored` says where the entity went back to (`active` or
|
|
72
|
+
* `archived`) without the reader having to replay anything.
|
|
73
|
+
*/
|
|
74
|
+
export const entityStateChangedPayload = z.object({
|
|
75
|
+
entity: entityRef,
|
|
76
|
+
from: entityStateName,
|
|
77
|
+
to: entityStateName,
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=entity-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-state.js","sourceRoot":"","sources":["../src/entity-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAGzE,uDAAuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,oDAAoD;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,iBAAiB,EAAE,aAAa,CAAC,QAAQ,EAAE;IAC3C,eAAe,EAAE,aAAa,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAGH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,eAAe;IACrB,EAAE,EAAE,eAAe;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { tenantId } from './ids.js';
|
|
3
|
+
/**
|
|
4
|
+
* Findings (#1748): anomalies a tenant triages like email, in one inbox with one lifecycle.
|
|
5
|
+
*
|
|
6
|
+
* - `invariant`: a rule was broken — expected 0, observed N (a scheduled run that failed).
|
|
7
|
+
* - `drift`: unusual against an expectation — a freshness expectation gone stale.
|
|
8
|
+
* - `recurring`: one failure shape, seen again and again — the tenant's own projection of an
|
|
9
|
+
* `_substrat_issues` fingerprint (#1233), counted over that tenant's occurrences only.
|
|
10
|
+
*
|
|
11
|
+
* A finding is TENANT-scoped by construction: its counters, versions and evidence come from
|
|
12
|
+
* that tenant's own rows, so the fleet aggregate it shares a fingerprint with is never visible
|
|
13
|
+
* through it. It carries no free text from the evidence (no message, no upstream reference):
|
|
14
|
+
* the evidence ref names where the rows are, and the reader reads them through its own
|
|
15
|
+
* tenant-forced view.
|
|
16
|
+
*/
|
|
17
|
+
export declare const findingKind: z.ZodEnum<{
|
|
18
|
+
drift: "drift";
|
|
19
|
+
invariant: "invariant";
|
|
20
|
+
recurring: "recurring";
|
|
21
|
+
}>;
|
|
22
|
+
export type FindingKind = z.infer<typeof findingKind>;
|
|
23
|
+
/**
|
|
24
|
+
* The lifecycle. `_substrat_issues` maps onto it 1:1 — new → `open`, regressed → `open` with
|
|
25
|
+
* `regressed`, resolved → `resolved`, ignored → `suppressed` — and `acked` is the one state an
|
|
26
|
+
* issue has no word for: "somebody is on it".
|
|
27
|
+
*/
|
|
28
|
+
export declare const findingStatus: z.ZodEnum<{
|
|
29
|
+
acked: "acked";
|
|
30
|
+
open: "open";
|
|
31
|
+
resolved: "resolved";
|
|
32
|
+
suppressed: "suppressed";
|
|
33
|
+
}>;
|
|
34
|
+
export type FindingStatus = z.infer<typeof findingStatus>;
|
|
35
|
+
/**
|
|
36
|
+
* What a verdict may SET. `suppressed` is never set directly: it is what a suppress RULE does,
|
|
37
|
+
* because a suppression without a scope and an expiry is a finding nobody will ever see again.
|
|
38
|
+
*/
|
|
39
|
+
export declare const findingStatusInput: z.ZodEnum<{
|
|
40
|
+
acked: "acked";
|
|
41
|
+
open: "open";
|
|
42
|
+
resolved: "resolved";
|
|
43
|
+
}>;
|
|
44
|
+
export type FindingStatusInput = z.infer<typeof findingStatusInput>;
|
|
45
|
+
export declare const findingSeverity: z.ZodEnum<{
|
|
46
|
+
critical: "critical";
|
|
47
|
+
info: "info";
|
|
48
|
+
warning: "warning";
|
|
49
|
+
}>;
|
|
50
|
+
export type FindingSeverity = z.infer<typeof findingSeverity>;
|
|
51
|
+
/** Where the occurrences behind a finding are read: the reader's own tenant-forced view of them. */
|
|
52
|
+
export declare const findingEvidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
53
|
+
source: z.ZodLiteral<"ops-failures">;
|
|
54
|
+
fingerprint: z.ZodString;
|
|
55
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
56
|
+
source: z.ZodLiteral<"sweep-runs">;
|
|
57
|
+
kind: z.ZodEnum<{
|
|
58
|
+
freshness: "freshness";
|
|
59
|
+
schedule: "schedule";
|
|
60
|
+
}>;
|
|
61
|
+
unit: z.ZodString;
|
|
62
|
+
}, z.core.$strip>], "source">;
|
|
63
|
+
export type FindingEvidence = z.infer<typeof findingEvidence>;
|
|
64
|
+
/**
|
|
65
|
+
* Why the finding is believed to have started, with the reason stated. Only `deploy` today: a
|
|
66
|
+
* finding that comes back under a version other than the one it was resolved under names the
|
|
67
|
+
* new version. Nothing is claimed when nothing changed — no cause is better than an invented one.
|
|
68
|
+
*/
|
|
69
|
+
export declare const findingLikelyCause: z.ZodObject<{
|
|
70
|
+
kind: z.ZodLiteral<"deploy">;
|
|
71
|
+
version: z.ZodString;
|
|
72
|
+
reason: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export type FindingLikelyCause = z.infer<typeof findingLikelyCause>;
|
|
75
|
+
export declare const findingEntry: z.ZodObject<{
|
|
76
|
+
id: z.ZodString;
|
|
77
|
+
tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
|
|
78
|
+
kind: z.ZodEnum<{
|
|
79
|
+
drift: "drift";
|
|
80
|
+
invariant: "invariant";
|
|
81
|
+
recurring: "recurring";
|
|
82
|
+
}>;
|
|
83
|
+
subject: z.ZodString;
|
|
84
|
+
status: z.ZodEnum<{
|
|
85
|
+
acked: "acked";
|
|
86
|
+
open: "open";
|
|
87
|
+
resolved: "resolved";
|
|
88
|
+
suppressed: "suppressed";
|
|
89
|
+
}>;
|
|
90
|
+
regressed: z.ZodBoolean;
|
|
91
|
+
severity: z.ZodEnum<{
|
|
92
|
+
critical: "critical";
|
|
93
|
+
info: "info";
|
|
94
|
+
warning: "warning";
|
|
95
|
+
}>;
|
|
96
|
+
title: z.ZodString;
|
|
97
|
+
operation: z.ZodNullable<z.ZodString>;
|
|
98
|
+
codes: z.ZodArray<z.ZodEnum<{
|
|
99
|
+
conflict: "conflict";
|
|
100
|
+
forbidden: "forbidden";
|
|
101
|
+
internal: "internal";
|
|
102
|
+
not_found: "not_found";
|
|
103
|
+
permission_denied: "permission_denied";
|
|
104
|
+
precondition_failed: "precondition_failed";
|
|
105
|
+
rate_limited: "rate_limited";
|
|
106
|
+
unauthenticated: "unauthenticated";
|
|
107
|
+
unavailable: "unavailable";
|
|
108
|
+
validation_failed: "validation_failed";
|
|
109
|
+
}>>;
|
|
110
|
+
vertical: z.ZodNullable<z.ZodString>;
|
|
111
|
+
scopeId: z.ZodNullable<z.core.$ZodBranded<z.ZodString, "ScopeId", "out">>;
|
|
112
|
+
count: z.ZodNumber;
|
|
113
|
+
firstSeen: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
|
|
114
|
+
lastSeen: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
|
|
115
|
+
lastVersion: z.ZodNullable<z.ZodString>;
|
|
116
|
+
resolvedVersion: z.ZodNullable<z.ZodString>;
|
|
117
|
+
resolvedAt: z.ZodNullable<z.core.$ZodBranded<z.ZodString, "Instant", "out">>;
|
|
118
|
+
resolution: z.ZodNullable<z.ZodEnum<{
|
|
119
|
+
stale: "stale";
|
|
120
|
+
verdict: "verdict";
|
|
121
|
+
}>>;
|
|
122
|
+
acknowledgedAt: z.ZodNullable<z.core.$ZodBranded<z.ZodString, "Instant", "out">>;
|
|
123
|
+
ruleId: z.ZodNullable<z.ZodString>;
|
|
124
|
+
evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
125
|
+
source: z.ZodLiteral<"ops-failures">;
|
|
126
|
+
fingerprint: z.ZodString;
|
|
127
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
128
|
+
source: z.ZodLiteral<"sweep-runs">;
|
|
129
|
+
kind: z.ZodEnum<{
|
|
130
|
+
freshness: "freshness";
|
|
131
|
+
schedule: "schedule";
|
|
132
|
+
}>;
|
|
133
|
+
unit: z.ZodString;
|
|
134
|
+
}, z.core.$strip>], "source">;
|
|
135
|
+
likelyCause: z.ZodNullable<z.ZodObject<{
|
|
136
|
+
kind: z.ZodLiteral<"deploy">;
|
|
137
|
+
version: z.ZodString;
|
|
138
|
+
reason: z.ZodString;
|
|
139
|
+
}, z.core.$strip>>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export type FindingEntry = z.infer<typeof findingEntry>;
|
|
142
|
+
/** The longest a suppression may last. A permanent "never show me this" is not a rule; it is a blind spot. */
|
|
143
|
+
export declare const FINDING_RULE_MAX_DAYS = 90;
|
|
144
|
+
/**
|
|
145
|
+
* A suppress rule (#1748): a scope plus an expiry. A matching occurrence is still COUNTED on its
|
|
146
|
+
* finding, but the finding stays `suppressed` instead of opening. Each set field narrows; at
|
|
147
|
+
* least one must be set, so a rule never silences a whole tenant.
|
|
148
|
+
*/
|
|
149
|
+
export declare const findingRuleInput: z.ZodObject<{
|
|
150
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
151
|
+
drift: "drift";
|
|
152
|
+
invariant: "invariant";
|
|
153
|
+
recurring: "recurring";
|
|
154
|
+
}>>;
|
|
155
|
+
operation: z.ZodOptional<z.ZodString>;
|
|
156
|
+
code: z.ZodOptional<z.ZodEnum<{
|
|
157
|
+
conflict: "conflict";
|
|
158
|
+
forbidden: "forbidden";
|
|
159
|
+
internal: "internal";
|
|
160
|
+
not_found: "not_found";
|
|
161
|
+
permission_denied: "permission_denied";
|
|
162
|
+
precondition_failed: "precondition_failed";
|
|
163
|
+
rate_limited: "rate_limited";
|
|
164
|
+
unauthenticated: "unauthenticated";
|
|
165
|
+
unavailable: "unavailable";
|
|
166
|
+
validation_failed: "validation_failed";
|
|
167
|
+
}>>;
|
|
168
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
169
|
+
expiresAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
|
|
170
|
+
reason: z.ZodString;
|
|
171
|
+
}, z.core.$strip>;
|
|
172
|
+
export type FindingRuleInput = z.infer<typeof findingRuleInput>;
|
|
173
|
+
export declare const findingRuleEntry: z.ZodObject<{
|
|
174
|
+
id: z.ZodString;
|
|
175
|
+
tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
|
|
176
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
177
|
+
drift: "drift";
|
|
178
|
+
invariant: "invariant";
|
|
179
|
+
recurring: "recurring";
|
|
180
|
+
}>>;
|
|
181
|
+
operation: z.ZodNullable<z.ZodString>;
|
|
182
|
+
code: z.ZodNullable<z.ZodEnum<{
|
|
183
|
+
conflict: "conflict";
|
|
184
|
+
forbidden: "forbidden";
|
|
185
|
+
internal: "internal";
|
|
186
|
+
not_found: "not_found";
|
|
187
|
+
permission_denied: "permission_denied";
|
|
188
|
+
precondition_failed: "precondition_failed";
|
|
189
|
+
rate_limited: "rate_limited";
|
|
190
|
+
unauthenticated: "unauthenticated";
|
|
191
|
+
unavailable: "unavailable";
|
|
192
|
+
validation_failed: "validation_failed";
|
|
193
|
+
}>>;
|
|
194
|
+
subject: z.ZodNullable<z.ZodString>;
|
|
195
|
+
expiresAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
|
|
196
|
+
reason: z.ZodString;
|
|
197
|
+
createdBy: z.ZodString;
|
|
198
|
+
createdAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
|
|
199
|
+
}, z.core.$strip>;
|
|
200
|
+
export type FindingRuleEntry = z.infer<typeof findingRuleEntry>;
|
|
201
|
+
/** Filter for `listFindings`. `tenantId` absent is the staff fleet read; a tenant's read is forced to it. */
|
|
202
|
+
export interface FindingFilter {
|
|
203
|
+
tenantId?: z.infer<typeof tenantId>;
|
|
204
|
+
status?: FindingStatus;
|
|
205
|
+
kind?: FindingKind;
|
|
206
|
+
limit?: number;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../src/findings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGtD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW;;;;EAA8C,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;EAAsD,CAAC;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;EAAwC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe;;;;EAA0C,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,oGAAoG;AACpG,eAAO,MAAM,eAAe;;;;;;;;;;6BAK1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,8GAA8G;AAC9G,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;iBAWzB,CAAC;AACL,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/findings.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { instant, scopeId, tenantId } from './ids.js';
|
|
3
|
+
import { errorCode } from './errors.js';
|
|
4
|
+
/**
|
|
5
|
+
* Findings (#1748): anomalies a tenant triages like email, in one inbox with one lifecycle.
|
|
6
|
+
*
|
|
7
|
+
* - `invariant`: a rule was broken — expected 0, observed N (a scheduled run that failed).
|
|
8
|
+
* - `drift`: unusual against an expectation — a freshness expectation gone stale.
|
|
9
|
+
* - `recurring`: one failure shape, seen again and again — the tenant's own projection of an
|
|
10
|
+
* `_substrat_issues` fingerprint (#1233), counted over that tenant's occurrences only.
|
|
11
|
+
*
|
|
12
|
+
* A finding is TENANT-scoped by construction: its counters, versions and evidence come from
|
|
13
|
+
* that tenant's own rows, so the fleet aggregate it shares a fingerprint with is never visible
|
|
14
|
+
* through it. It carries no free text from the evidence (no message, no upstream reference):
|
|
15
|
+
* the evidence ref names where the rows are, and the reader reads them through its own
|
|
16
|
+
* tenant-forced view.
|
|
17
|
+
*/
|
|
18
|
+
export const findingKind = z.enum(['invariant', 'drift', 'recurring']);
|
|
19
|
+
/**
|
|
20
|
+
* The lifecycle. `_substrat_issues` maps onto it 1:1 — new → `open`, regressed → `open` with
|
|
21
|
+
* `regressed`, resolved → `resolved`, ignored → `suppressed` — and `acked` is the one state an
|
|
22
|
+
* issue has no word for: "somebody is on it".
|
|
23
|
+
*/
|
|
24
|
+
export const findingStatus = z.enum(['open', 'acked', 'resolved', 'suppressed']);
|
|
25
|
+
/**
|
|
26
|
+
* What a verdict may SET. `suppressed` is never set directly: it is what a suppress RULE does,
|
|
27
|
+
* because a suppression without a scope and an expiry is a finding nobody will ever see again.
|
|
28
|
+
*/
|
|
29
|
+
export const findingStatusInput = z.enum(['open', 'acked', 'resolved']);
|
|
30
|
+
export const findingSeverity = z.enum(['info', 'warning', 'critical']);
|
|
31
|
+
/** Where the occurrences behind a finding are read: the reader's own tenant-forced view of them. */
|
|
32
|
+
export const findingEvidence = z.discriminatedUnion('source', [
|
|
33
|
+
/** `GET /ops-failures`, grouped by this fingerprint. */
|
|
34
|
+
z.object({ source: z.literal('ops-failures'), fingerprint: z.string().min(1) }),
|
|
35
|
+
/** `GET /sweep-runs?kind=…&unit=…`. */
|
|
36
|
+
z.object({ source: z.literal('sweep-runs'), kind: z.enum(['schedule', 'freshness']), unit: z.string().min(1) }),
|
|
37
|
+
]);
|
|
38
|
+
/**
|
|
39
|
+
* Why the finding is believed to have started, with the reason stated. Only `deploy` today: a
|
|
40
|
+
* finding that comes back under a version other than the one it was resolved under names the
|
|
41
|
+
* new version. Nothing is claimed when nothing changed — no cause is better than an invented one.
|
|
42
|
+
*/
|
|
43
|
+
export const findingLikelyCause = z.object({
|
|
44
|
+
kind: z.literal('deploy'),
|
|
45
|
+
/** The version-registry id the finding was seen under. */
|
|
46
|
+
version: z.string().min(1),
|
|
47
|
+
reason: z.string().min(1),
|
|
48
|
+
});
|
|
49
|
+
export const findingEntry = z.object({
|
|
50
|
+
id: z.string().min(1),
|
|
51
|
+
tenantId,
|
|
52
|
+
kind: findingKind,
|
|
53
|
+
/** The dedupe key within (tenant, kind): a fingerprint, or a sweep unit. */
|
|
54
|
+
subject: z.string().min(1),
|
|
55
|
+
status: findingStatus,
|
|
56
|
+
/** A fresh occurrence reopened a resolved finding. Cleared by the next `resolved` verdict. */
|
|
57
|
+
regressed: z.boolean(),
|
|
58
|
+
severity: findingSeverity,
|
|
59
|
+
title: z.string().min(1),
|
|
60
|
+
operation: z.string().nullable(),
|
|
61
|
+
/** The taxonomy codes seen on this finding, newest first, at most five. */
|
|
62
|
+
codes: z.array(errorCode),
|
|
63
|
+
vertical: z.string().nullable(),
|
|
64
|
+
scopeId: scopeId.nullable(),
|
|
65
|
+
/** This tenant's occurrences since the finding was first seen — never a fleet count. */
|
|
66
|
+
count: z.number().int().positive(),
|
|
67
|
+
firstSeen: instant,
|
|
68
|
+
lastSeen: instant,
|
|
69
|
+
lastVersion: z.string().nullable(),
|
|
70
|
+
/** `lastVersion` when the last `resolved` landed — the X of "resolved under X, seen again under Y". */
|
|
71
|
+
resolvedVersion: z.string().nullable(),
|
|
72
|
+
resolvedAt: instant.nullable(),
|
|
73
|
+
/**
|
|
74
|
+
* How the last resolve happened: a person's `verdict`, or `stale` — an open finding that went
|
|
75
|
+
* quiet for the whole retention window, resolved (and audited) by the retention pass rather
|
|
76
|
+
* than deleted out from under whoever was watching it.
|
|
77
|
+
*/
|
|
78
|
+
resolution: z.enum(['verdict', 'stale']).nullable(),
|
|
79
|
+
acknowledgedAt: instant.nullable(),
|
|
80
|
+
/** The suppress rule holding it, while `suppressed`. */
|
|
81
|
+
ruleId: z.string().nullable(),
|
|
82
|
+
evidence: findingEvidence,
|
|
83
|
+
likelyCause: findingLikelyCause.nullable(),
|
|
84
|
+
});
|
|
85
|
+
/** The longest a suppression may last. A permanent "never show me this" is not a rule; it is a blind spot. */
|
|
86
|
+
export const FINDING_RULE_MAX_DAYS = 90;
|
|
87
|
+
/**
|
|
88
|
+
* A suppress rule (#1748): a scope plus an expiry. A matching occurrence is still COUNTED on its
|
|
89
|
+
* finding, but the finding stays `suppressed` instead of opening. Each set field narrows; at
|
|
90
|
+
* least one must be set, so a rule never silences a whole tenant.
|
|
91
|
+
*/
|
|
92
|
+
export const findingRuleInput = z
|
|
93
|
+
.object({
|
|
94
|
+
kind: findingKind.optional(),
|
|
95
|
+
operation: z.string().min(1).optional(),
|
|
96
|
+
code: errorCode.optional(),
|
|
97
|
+
subject: z.string().min(1).optional(),
|
|
98
|
+
expiresAt: instant,
|
|
99
|
+
reason: z.string().min(1).max(500),
|
|
100
|
+
})
|
|
101
|
+
.refine((r) => r.kind !== undefined || r.operation !== undefined || r.code !== undefined || r.subject !== undefined, {
|
|
102
|
+
message: 'a suppress rule names at least one of kind, operation, code or subject',
|
|
103
|
+
});
|
|
104
|
+
export const findingRuleEntry = z.object({
|
|
105
|
+
id: z.string().min(1),
|
|
106
|
+
tenantId,
|
|
107
|
+
kind: findingKind.nullable(),
|
|
108
|
+
operation: z.string().nullable(),
|
|
109
|
+
code: errorCode.nullable(),
|
|
110
|
+
subject: z.string().nullable(),
|
|
111
|
+
expiresAt: instant,
|
|
112
|
+
reason: z.string(),
|
|
113
|
+
createdBy: z.string(),
|
|
114
|
+
createdAt: instant,
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.js","sourceRoot":"","sources":["../src/findings.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export * from './idempotency.js';
|
|
|
35
35
|
export * from './connections.js';
|
|
36
36
|
export * from './connection-health.js';
|
|
37
37
|
export * from './control-plane.js';
|
|
38
|
+
export * from './findings.js';
|
|
38
39
|
export * from './permission.js';
|
|
39
40
|
export * from './impersonation.js';
|
|
40
41
|
export * from './events.js';
|
|
@@ -56,6 +57,7 @@ export * from './ci.js';
|
|
|
56
57
|
export * from './money.js';
|
|
57
58
|
export * from './attachments.js';
|
|
58
59
|
export * from './kernel-events.js';
|
|
60
|
+
export * from './entity-state.js';
|
|
59
61
|
export * from './model.js';
|
|
60
62
|
export * from './operations.js';
|
|
61
63
|
export * from './lifecycle.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ export * from './idempotency.js';
|
|
|
35
35
|
export * from './connections.js';
|
|
36
36
|
export * from './connection-health.js';
|
|
37
37
|
export * from './control-plane.js';
|
|
38
|
+
export * from './findings.js';
|
|
38
39
|
export * from './permission.js';
|
|
39
40
|
export * from './impersonation.js';
|
|
40
41
|
export * from './events.js';
|
|
@@ -56,6 +57,7 @@ export * from './ci.js';
|
|
|
56
57
|
export * from './money.js';
|
|
57
58
|
export * from './attachments.js';
|
|
58
59
|
export * from './kernel-events.js';
|
|
60
|
+
export * from './entity-state.js';
|
|
59
61
|
export * from './model.js';
|
|
60
62
|
export * from './operations.js';
|
|
61
63
|
export * from './lifecycle.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-events.d.ts","sourceRoot":"","sources":["../src/kernel-events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kernel-events.d.ts","sourceRoot":"","sources":["../src/kernel-events.ts"],"names":[],"mappings":"AAmCA,0FAA0F;AAC1F,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAAwC,CAAC;AAElG,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,OAAoC,CAAC;AAE9F,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO5D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ3D"}
|
package/dist/kernel-events.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ATTACHMENT_ADDED, ATTACHMENT_REMOVED } from './attachments.js';
|
|
2
2
|
import { CAPABILITY_EXERCISED, CAPABILITY_MINTED, CAPABILITY_REVOKED } from './capability.js';
|
|
3
|
+
import { ENTITY_ARCHIVED, ENTITY_RESTORED, ENTITY_TRASHED, ENTITY_UNARCHIVED } from './entity-state.js';
|
|
3
4
|
import { substratError } from './errors.js';
|
|
4
5
|
import { ENTITY_LINKED, ENTITY_RELINKED } from './permission.js';
|
|
5
6
|
/**
|
|
@@ -23,8 +24,12 @@ const KERNEL_AUTHORED = new Set([
|
|
|
23
24
|
CAPABILITY_EXERCISED,
|
|
24
25
|
CAPABILITY_MINTED,
|
|
25
26
|
CAPABILITY_REVOKED,
|
|
27
|
+
ENTITY_ARCHIVED,
|
|
26
28
|
ENTITY_LINKED,
|
|
27
29
|
ENTITY_RELINKED,
|
|
30
|
+
ENTITY_RESTORED,
|
|
31
|
+
ENTITY_TRASHED,
|
|
32
|
+
ENTITY_UNARCHIVED,
|
|
28
33
|
]);
|
|
29
34
|
/** The reserved types, for readers: a frozen snapshot, not the set the guards consult. */
|
|
30
35
|
export const KERNEL_AUTHORED_EVENT_TYPES = Object.freeze([...KERNEL_AUTHORED]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-events.js","sourceRoot":"","sources":["../src/kernel-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,eAAe;
|
|
1
|
+
{"version":3,"file":"kernel-events.js","sourceRoot":"","sources":["../src/kernel-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,aAAa;IACb,eAAe;IACf,eAAe;IACf,cAAc;IACd,iBAAiB;CAClB,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,2BAA2B,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;AAElG,+CAA+C;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE9F,4FAA4F;AAC5F,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACvC,MAAM,aAAa,CACjB,mBAAmB,EACnB,yBAAyB,IAAI,+CAA+C,EAC5E,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,EAAE,CACxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACtC,MAAM,aAAa,CACjB,UAAU,EACV,qBAAqB,IAAI,qDAAqD;QAC5E,qDAAqD;QACrD,8CAA8C,CACjD,CAAC;AACJ,CAAC"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -300,6 +300,13 @@ export declare const moduleManifest: z.ZodObject<{
|
|
|
300
300
|
table: z.ZodOptional<z.ZodString>;
|
|
301
301
|
idColumn: z.ZodOptional<z.ZodString>;
|
|
302
302
|
}, z.core.$strip>>>;
|
|
303
|
+
entityStates: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
304
|
+
archivePermission: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "PermissionKey", "out">>;
|
|
305
|
+
trashPermission: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "PermissionKey", "out">>;
|
|
306
|
+
table: z.ZodOptional<z.ZodString>;
|
|
307
|
+
idColumn: z.ZodOptional<z.ZodString>;
|
|
308
|
+
entityType: z.ZodString;
|
|
309
|
+
}, z.core.$strip>>>;
|
|
303
310
|
ui: z.ZodOptional<z.ZodObject<{
|
|
304
311
|
routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
305
312
|
path: z.ZodString;
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|