@openvtc/trust-tasks 0.28.11 → 0.28.13
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/CHANGELOG.md +57 -0
- package/dist/_shared/components.d.ts +496 -0
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -1
- package/dist/vta/collection/_shared/0.1/collection.d.ts +16 -0
- package/dist/vta/collection/_shared/0.1/collection.d.ts.map +1 -0
- package/dist/vta/collection/_shared/0.1/collection.js +6 -0
- package/dist/vta/collection/_shared/0.1/collection.js.map +1 -0
- package/dist/vta/collection/claim/0.1/payload.d.ts +352 -0
- package/dist/vta/collection/claim/0.1/payload.d.ts.map +1 -0
- package/dist/vta/collection/claim/0.1/payload.js +198 -0
- package/dist/vta/collection/claim/0.1/payload.js.map +1 -0
- package/dist/vta/collection/list/0.1/payload.d.ts +740 -0
- package/dist/vta/collection/list/0.1/payload.d.ts.map +1 -0
- package/dist/vta/collection/list/0.1/payload.js +447 -0
- package/dist/vta/collection/list/0.1/payload.js.map +1 -0
- package/dist/vta/collection/release/0.1/payload.d.ts +316 -0
- package/dist/vta/collection/release/0.1/payload.d.ts.map +1 -0
- package/dist/vta/collection/release/0.1/payload.js +182 -0
- package/dist/vta/collection/release/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/_shared/0.1/board.d.ts +22 -0
- package/dist/vtc/boards/_shared/0.1/board.d.ts.map +1 -0
- package/dist/vtc/boards/_shared/0.1/board.js +6 -0
- package/dist/vtc/boards/_shared/0.1/board.js.map +1 -0
- package/dist/vtc/boards/create/0.1/payload.d.ts +2402 -0
- package/dist/vtc/boards/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/create/0.1/payload.js +1349 -0
- package/dist/vtc/boards/create/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/ideas/decide/0.1/payload.d.ts +1781 -0
- package/dist/vtc/boards/ideas/decide/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/ideas/decide/0.1/payload.js +1028 -0
- package/dist/vtc/boards/ideas/decide/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/ideas/propose/0.1/payload.d.ts +1781 -0
- package/dist/vtc/boards/ideas/propose/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/ideas/propose/0.1/payload.js +1025 -0
- package/dist/vtc/boards/ideas/propose/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/ideas/select/0.1/payload.d.ts +1788 -0
- package/dist/vtc/boards/ideas/select/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/ideas/select/0.1/payload.js +1029 -0
- package/dist/vtc/boards/ideas/select/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/ideas/update/0.1/payload.d.ts +1781 -0
- package/dist/vtc/boards/ideas/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/ideas/update/0.1/payload.js +1023 -0
- package/dist/vtc/boards/ideas/update/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/ideas/withdraw/0.1/payload.d.ts +1753 -0
- package/dist/vtc/boards/ideas/withdraw/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/ideas/withdraw/0.1/payload.js +1011 -0
- package/dist/vtc/boards/ideas/withdraw/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/list/0.1/payload.d.ts +2267 -0
- package/dist/vtc/boards/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/list/0.1/payload.js +1326 -0
- package/dist/vtc/boards/list/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/notes/add/0.1/payload.d.ts +655 -0
- package/dist/vtc/boards/notes/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/notes/add/0.1/payload.js +374 -0
- package/dist/vtc/boards/notes/add/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/notes/hide/0.1/payload.d.ts +657 -0
- package/dist/vtc/boards/notes/hide/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/notes/hide/0.1/payload.js +378 -0
- package/dist/vtc/boards/notes/hide/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/notes/list/0.1/payload.d.ts +730 -0
- package/dist/vtc/boards/notes/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/notes/list/0.1/payload.js +406 -0
- package/dist/vtc/boards/notes/list/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/notes/withdraw/0.1/payload.d.ts +641 -0
- package/dist/vtc/boards/notes/withdraw/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/notes/withdraw/0.1/payload.js +367 -0
- package/dist/vtc/boards/notes/withdraw/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/show/0.1/payload.d.ts +3713 -0
- package/dist/vtc/boards/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/show/0.1/payload.js +2160 -0
- package/dist/vtc/boards/show/0.1/payload.js.map +1 -0
- package/dist/vtc/boards/update/0.1/payload.d.ts +2423 -0
- package/dist/vtc/boards/update/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/boards/update/0.1/payload.js +1356 -0
- package/dist/vtc/boards/update/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +531 -0
- package/src/index.ts +54 -0
- package/src/vta/collection/_shared/0.1/collection.ts +17 -0
- package/src/vta/collection/claim/0.1/payload.ts +247 -0
- package/src/vta/collection/list/0.1/payload.ts +500 -0
- package/src/vta/collection/release/0.1/payload.ts +223 -0
- package/src/vtc/boards/_shared/0.1/board.ts +23 -0
- package/src/vtc/boards/create/0.1/payload.ts +1517 -0
- package/src/vtc/boards/ideas/decide/0.1/payload.ts +1068 -0
- package/src/vtc/boards/ideas/propose/0.1/payload.ts +1063 -0
- package/src/vtc/boards/ideas/select/0.1/payload.ts +1070 -0
- package/src/vtc/boards/ideas/update/0.1/payload.ts +1061 -0
- package/src/vtc/boards/ideas/withdraw/0.1/payload.ts +1045 -0
- package/src/vtc/boards/list/0.1/payload.ts +1376 -0
- package/src/vtc/boards/notes/add/0.1/payload.ts +410 -0
- package/src/vtc/boards/notes/hide/0.1/payload.ts +414 -0
- package/src/vtc/boards/notes/list/0.1/payload.ts +457 -0
- package/src/vtc/boards/notes/withdraw/0.1/payload.ts +401 -0
- package/src/vtc/boards/show/0.1/payload.ts +2212 -0
- package/src/vtc/boards/update/0.1/payload.ts +1529 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,63 @@ The package versions over **its own API** — what a consumer compiles against
|
|
|
11
11
|
not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
|
|
12
12
|
component.
|
|
13
13
|
|
|
14
|
+
## 0.28.13 — 2026-11-04
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **vtc/boards**: Community boards — propose ideas, leave notes, vote on each accepted idea through its own election (vtc/boards/*/0.1) (#1025)
|
|
20
|
+
|
|
21
|
+
Thirteen tasks implementing the VTI Community Boards chapter (VTI-BRD-001 – VTI-BRD-080): create, update, list and show a board; propose, update, withdraw, decide (accept opens an election from the board's template) and select ideas; add, list, withdraw and hide notes. A board never reports tickets or ballots (VTI-BRD-033); the shared ElectionTemplate is a manifest less the members the community fills in per idea, and is never binding.
|
|
22
|
+
|
|
23
|
+
## 0.28.12 — 2026-11-04
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **vta/collection**: Claim, release and list who collects a persona DID's messages at the mediator (#1023)
|
|
29
|
+
|
|
30
|
+
Implements dtgwg-vti-spec's collection for the principal's identifiers
|
|
31
|
+
(VTI-NTF-080 – VTI-NTF-092).
|
|
32
|
+
|
|
33
|
+
A VTA collects, at the mediator each DID document advertises, the messages
|
|
34
|
+
for every identifier whose messaging keys it holds in one of the principal's
|
|
35
|
+
trust contexts — its personas — unless a client has claimed it. The mediator
|
|
36
|
+
permits one connection per DID, so at most one party collects at a time.
|
|
37
|
+
|
|
38
|
+
New tasks (family vta/collection, category messaging):
|
|
39
|
+
|
|
40
|
+
- vta/collection/claim/0.1 — a client becomes an identifier's one collector
|
|
41
|
+
until a stated end (a lease, at most thirty days), or renews its claim. The
|
|
42
|
+
VTA stops collecting and closes its connection before it grants; the client
|
|
43
|
+
connects only after the grant and closes before the end unless renewed.
|
|
44
|
+
notCollectable, claimHeld, claimNotRenewable. Retry class 2.
|
|
45
|
+
- vta/collection/release/0.1 — the claimant ends its claim at once, having
|
|
46
|
+
stopped collecting; any other party with standing makes it unrenewable,
|
|
47
|
+
and it still ends at its end. notCollectable. Retry class 2.
|
|
48
|
+
- vta/collection/list/0.1 — who collects for each identifier of a context:
|
|
49
|
+
the VTA, a claimant (with the end and whether renewable), or nobody, with
|
|
50
|
+
the reason (limit, conflict).
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Specifications
|
|
55
|
+
|
|
56
|
+
- **vta/collection**: Category notifications, a disabled reason, and the 24-hour lease (#1024)
|
|
57
|
+
|
|
58
|
+
Follows dtgwg-vti-spec#97's VTI-NTF-093 and lease recommendation.
|
|
59
|
+
|
|
60
|
+
- Category messaging -> notifications for claim, release and list.
|
|
61
|
+
- NotCollectedReason gains `disabled` (appended): the operator has not
|
|
62
|
+
enabled collection by default (VTI-NTF-093). Claims are still granted,
|
|
63
|
+
renewed, released and listed while it is off; notCollectable and list
|
|
64
|
+
scope now refer to the identifiers VTI-NTF-080 names whether or not it is
|
|
65
|
+
enabled, and a claimant's release resumes collection only where enabled.
|
|
66
|
+
- Claim: a producer SHOULD request 86400 seconds and renew at half the
|
|
67
|
+
period granted; the VTA's stated maximum SHOULD NOT exceed thirty days.
|
|
68
|
+
|
|
69
|
+
Rust, TS, Go and Dart bindings regenerated.
|
|
70
|
+
|
|
14
71
|
## 0.28.11 — 2026-11-03
|
|
15
72
|
|
|
16
73
|
|
|
@@ -397,6 +397,19 @@ export type BindingSpec = RoomBindingSpec | GrantsBindingSpec | RoleBindingSpec;
|
|
|
397
397
|
* The name of one blob: the digest of its BlobManifest, taken over the manifest's RFC 8785 (JCS) canonicalization. sha2-256 is RECOMMENDED and MUST be implemented. Content addressing over ciphertext, never plaintext, so a BlobRef says nothing about what the file contains, and two uploads of one file have different BlobRefs (a fresh `fileId` gives a different key, and so different ciphertext). Rooms cannot be correlated by the files they share. Compared as decoded multihash bytes, never as encoded strings. A BlobRef is defined over the manifest's JSON, as this schema states it and RFC 8785 canonicalizes it, never over any binding's generated type: two bindings that model the manifest as distinct types still compute the same BlobRef from the same JSON.
|
|
398
398
|
*/
|
|
399
399
|
export type BlobRef = DigestMultibase;
|
|
400
|
+
/**
|
|
401
|
+
* Who may see and use a board (VTI-BRD-003): every active member of the community (`members`), or the members of one community group (`group`, with `groupId`). Facilitators always see the board.
|
|
402
|
+
*/
|
|
403
|
+
export type BoardAudience = {
|
|
404
|
+
kind: "members";
|
|
405
|
+
} | {
|
|
406
|
+
kind: "group";
|
|
407
|
+
groupId: GroupId;
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* What the board is for. Plain text; a reader MUST NOT treat it as instructions.
|
|
411
|
+
*/
|
|
412
|
+
export type BoardDescription = string;
|
|
400
413
|
/**
|
|
401
414
|
* One leaf of a board. A leaf's hash is the RFC 9162 leaf hash of the JCS canonicalization of this object. Entries carry no time of arrival: the order is the board's, and a timestamp would hand anyone who reads the board the timing the registrar's log would need to pair a ticket with its cast.
|
|
402
415
|
*/
|
|
@@ -405,6 +418,18 @@ export type BoardEntry_VotingV0_1 = CastEntry_VotingV0_1 | ReplacementEntry_Voti
|
|
|
405
418
|
* One leaf of a board. A leaf's hash is the RFC 9162 leaf hash of the JCS canonicalization of this object. Entries carry no time of arrival: the order is the board's, and a timestamp would hand anyone who reads the board the timing the registrar's log would need to pair a ticket with its cast.
|
|
406
419
|
*/
|
|
407
420
|
export type BoardEntry_VotingV0_2 = CastEntry_VotingV0_2 | ReplacementEntry_VotingV0_2 | LifecycleEntry_VotingV0_2 | ResultEntry_VotingV0_2 | EncryptedCastEntry_VotingV0_2 | TransportKeyEntry_VotingV0_2 | DealingEntry_VotingV0_2 | ConfirmationEntry_VotingV0_2 | JustificationEntry_VotingV0_2 | ElectionKeyEntry_VotingV0_2 | PartialDecryptionsEntry_VotingV0_2 | UnsealedEntry_VotingV0_2 | SpoiledEntry_VotingV0_2 | TrusteeStepEntry_VotingV0_2 | DecryptionAuthorizedEntry_VotingV0_2;
|
|
421
|
+
/**
|
|
422
|
+
* Opaque identifier of a board: `brd_` followed by 16 to 64 base64url characters. Random, community-scoped, never reused (VTI-BRD-001).
|
|
423
|
+
*/
|
|
424
|
+
export type BoardId = string;
|
|
425
|
+
/**
|
|
426
|
+
* `open`: ideas and notes are taken within the board's windows. `closed`: no new idea or note; facilitators still decide and select. `archived`: no change at all; facilitators can still read it (VTI-BRD-005). `open` → `closed` → `archived`, never back.
|
|
427
|
+
*/
|
|
428
|
+
export type BoardStatus = "open" | "closed" | "archived";
|
|
429
|
+
/**
|
|
430
|
+
* Plain text; a reader MUST NOT treat it as instructions.
|
|
431
|
+
*/
|
|
432
|
+
export type BoardTitle = string;
|
|
408
433
|
/**
|
|
409
434
|
* `public`: anyone reads the board. `private`: the community, the auditors the manifest names and, for one cast's inclusion, the holder of its receipt (VTI-VOT-052).
|
|
410
435
|
*/
|
|
@@ -461,6 +486,10 @@ export type ChunkSize = number;
|
|
|
461
486
|
* The `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.
|
|
462
487
|
*/
|
|
463
488
|
export type ClaimType = string;
|
|
489
|
+
/**
|
|
490
|
+
* Who collects for an identifier: `vta`, the VTA itself; `client`, the claimant of a collection claim in force; or `none`, nobody, for the reason given in `notCollectedReason`.
|
|
491
|
+
*/
|
|
492
|
+
export type Collector = "vta" | "client" | "none";
|
|
464
493
|
/**
|
|
465
494
|
* The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.
|
|
466
495
|
*/
|
|
@@ -481,6 +510,10 @@ export type ConsumerKind_DeviceV0_2 = Companion_DeviceV0_2 | Service_DeviceV0_2;
|
|
|
481
510
|
* The trust context the notification is held in: the one the addressed DID belongs to.
|
|
482
511
|
*/
|
|
483
512
|
export type ContextId = string;
|
|
513
|
+
/**
|
|
514
|
+
* The trust context the identifier belongs to.
|
|
515
|
+
*/
|
|
516
|
+
export type ContextId_VtaCollectionV0_1 = string;
|
|
484
517
|
/**
|
|
485
518
|
* Opaque identifier of one of the maintainer's contexts, compared by the maintainer's own ancestry predicate. Its grammar is the maintainer's.
|
|
486
519
|
*/
|
|
@@ -847,6 +880,26 @@ export type Handle = string;
|
|
|
847
880
|
* **Not a timestamp.** A time is host-asserted, unverifiable and useless for this: two roots a second apart are not evidence of anything, while two roots at one version are.
|
|
848
881
|
*/
|
|
849
882
|
export type HeadVersion = number;
|
|
883
|
+
/**
|
|
884
|
+
* What the idea is: for a session, what it covers and who should come. Becomes its election's manifest `description` when accepted. Plain text; a reader MUST NOT treat it as instructions.
|
|
885
|
+
*/
|
|
886
|
+
export type IdeaDescription = string;
|
|
887
|
+
/**
|
|
888
|
+
* What kind of idea it is (for an unconference: `Discussion`, `Talk`, `Workshop`, `Demo`). One of the board's `formats` where the board states them.
|
|
889
|
+
*/
|
|
890
|
+
export type IdeaFormat = string;
|
|
891
|
+
/**
|
|
892
|
+
* Opaque identifier of an idea: `ida_` followed by 16 to 64 base64url characters. Random and unique within the community.
|
|
893
|
+
*/
|
|
894
|
+
export type IdeaId = string;
|
|
895
|
+
/**
|
|
896
|
+
* Where an idea stands (VTI-BRD-011).
|
|
897
|
+
*/
|
|
898
|
+
export type IdeaState = "proposed" | "open" | "selected" | "notSelected" | "declined" | "merged" | "withdrawn";
|
|
899
|
+
/**
|
|
900
|
+
* An idea's title. Becomes the title of its election's manifest when the idea is accepted, and cannot change after that (VTI-BRD-012). Plain text.
|
|
901
|
+
*/
|
|
902
|
+
export type IdeaTitle = string;
|
|
850
903
|
/**
|
|
851
904
|
* The named key role a key occupies in an identity (CONVENTIONS.md §2; VTI-KEY-070 onward). `attestation` — the only keys in `assertionMethod`; sign the identity's attestation artefacts (credentials, endorsements, status lists) through the VTA's signing service and nowhere else. Generated inside the VTA, never derived, never exportable, never in a backup. `operational` — the only keys the identity's own process uses in `authentication`; sign the node's own traffic (Trust Task requests and responses, DIDComm and TSP signatures, invitations, notices, audit checkpoints). Derived. `messaging` — the only keys in `keyAgreement`; sign nothing. X25519, derived or generated in its own right and never converted from a signing key. `update` — the identifier's change authority as its DID method states it (a did:webvh log's `updateKeys` and `nextKeyHashes`, a KERI key event log's current and next keys); never a role-bound verification method, never in `keyRoles`. Generated inside the VTA, never derived, never exportable, never in a backup, and always accompanied by a committed recovery key held outside the VTA's protection boundary. `authenticator` — a key held on a person's own authenticator (a WebAuthn passkey), listed in `authentication` of that person's identity only; used only to verify the person's WebAuthn assertions (sign-in and step-up evidence) and never to accept a Data Integrity proof. The VTA never holds its private half, so it is enrolled by the passkey ceremony and never generated, added or rotated by these tasks. Never permitted on the durable identity of a VTA, a VTC or a VTN. No role permits `capabilityInvocation` or `capabilityDelegation` (VTI-KEY-075). The set is an extensible registry: a consumer that meets a role it does not implement MUST rely on the key for nothing, and MUST NOT map it onto a role it does know (VTI-KEY-074).
|
|
852
905
|
*/
|
|
@@ -1056,14 +1109,27 @@ export type NamespaceId = string;
|
|
|
1056
1109
|
* What a node is.
|
|
1057
1110
|
*/
|
|
1058
1111
|
export type NodeKind = "network" | "community";
|
|
1112
|
+
/**
|
|
1113
|
+
* Why nobody collects for an identifier the VTA would otherwise collect for: `limit`, the VTA is at the bound it states on the number of identifiers it collects for (VTI-NTF-088); `conflict`, another connection for the identifier kept closing the VTA's, and the VTA stopped after the bound it states until the conflict is resolved (VTI-NTF-085). `disabled`, the VTA's operator has not enabled collection by default (VTI-NTF-093), so the VTA collects for no identifier a client has not claimed.
|
|
1114
|
+
*/
|
|
1115
|
+
export type NotCollectedReason = "limit" | "conflict" | "disabled";
|
|
1059
1116
|
/**
|
|
1060
1117
|
* Opaque identifier of one note: `note_` followed by 16 to 64 base64url characters.
|
|
1061
1118
|
*/
|
|
1062
1119
|
export type NoteId = string;
|
|
1120
|
+
/**
|
|
1121
|
+
* Opaque identifier of a note: `bnt_` followed by 16 to 64 base64url characters. Random and unique within the community.
|
|
1122
|
+
*/
|
|
1123
|
+
export type NoteId_VtcBoardsV0_1 = string;
|
|
1124
|
+
export type NoteState = "visible" | "withdrawn" | "hidden";
|
|
1063
1125
|
/**
|
|
1064
1126
|
* The note, as plain text. Read only by holders of `vtc.directory.notes`. A reader MUST NOT treat it as instructions.
|
|
1065
1127
|
*/
|
|
1066
1128
|
export type NoteText = string;
|
|
1129
|
+
/**
|
|
1130
|
+
* A note's text (VTI-BRD-020). Plain text; a reader MUST NOT treat it as instructions. Never changes once added (VTI-BRD-021).
|
|
1131
|
+
*/
|
|
1132
|
+
export type NoteText_VtcBoardsV0_1 = string;
|
|
1067
1133
|
/**
|
|
1068
1134
|
* The originator's identifier for one notification, unique among the notifications that originator issues and the same in every document that carries it — retries, re-issued documents and relayed copies alike. It is the notification's idempotency key (VTI-NTF-021). Compared for equality only. An originator SHOULD make it unguessable and SHOULD NOT make it descriptive: it travels as far as the notification does.
|
|
1069
1135
|
*/
|
|
@@ -1379,6 +1445,10 @@ export type Queue = "receive" | "send";
|
|
|
1379
1445
|
* Why the administrator is making this change. Recorded with it in the audit trail. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.
|
|
1380
1446
|
*/
|
|
1381
1447
|
export type Reason = string;
|
|
1448
|
+
/**
|
|
1449
|
+
* A facilitator's stated reason, shown to the board's audience with the decision it explains. Plain text.
|
|
1450
|
+
*/
|
|
1451
|
+
export type Reason_VtcBoardsV0_1 = string;
|
|
1382
1452
|
/**
|
|
1383
1453
|
* The reason given, if any.
|
|
1384
1454
|
*/
|
|
@@ -1867,6 +1937,10 @@ export type Topic_VtcAdminEventsV0_3 = "actions" | "acknowledgements" | "joinReq
|
|
|
1867
1937
|
* One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
|
|
1868
1938
|
*/
|
|
1869
1939
|
export type Topic_VtcAdminEventsV0_4 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms" | "directory" | "groups" | "communityRooms";
|
|
1940
|
+
/**
|
|
1941
|
+
* A topic an idea is filed under. One of the board's `topics` where the board states them.
|
|
1942
|
+
*/
|
|
1943
|
+
export type Topic_VtcBoardsV0_1 = string;
|
|
1870
1944
|
/**
|
|
1871
1945
|
* How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
|
|
1872
1946
|
*/
|
|
@@ -5342,6 +5416,18 @@ export interface AuthenticatorAttestationResponseRegistration {
|
|
|
5342
5416
|
authenticatorAttachment?: "platform" | "cross-platform";
|
|
5343
5417
|
clientExtensionResults?: {};
|
|
5344
5418
|
}
|
|
5419
|
+
/**
|
|
5420
|
+
* Who proposed an idea or wrote a note, as the board's audience sees them. `entryId` is their directory entry, which survives a rotation of their DID; `name` is their directory display name as this caller may see it, absent where the directory withholds it. A departed member is shown as `formerMember: true` with neither (VTI-BRD-060).
|
|
5421
|
+
*/
|
|
5422
|
+
export interface Author {
|
|
5423
|
+
entryId?: EntryId;
|
|
5424
|
+
name?: string;
|
|
5425
|
+
formerMember?: true;
|
|
5426
|
+
/**
|
|
5427
|
+
* Present when the caller is the author.
|
|
5428
|
+
*/
|
|
5429
|
+
you?: true;
|
|
5430
|
+
}
|
|
5345
5431
|
/**
|
|
5346
5432
|
* What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.
|
|
5347
5433
|
*
|
|
@@ -5488,6 +5574,160 @@ export interface BlobManifest {
|
|
|
5488
5574
|
*/
|
|
5489
5575
|
digest: DigestMultibase;
|
|
5490
5576
|
}
|
|
5577
|
+
/**
|
|
5578
|
+
* A board as one caller may see it.
|
|
5579
|
+
*/
|
|
5580
|
+
export interface Board {
|
|
5581
|
+
boardId: BoardId;
|
|
5582
|
+
title: BoardTitle;
|
|
5583
|
+
description?: BoardDescription;
|
|
5584
|
+
status: BoardStatus;
|
|
5585
|
+
audience: BoardAudience;
|
|
5586
|
+
/**
|
|
5587
|
+
* When ideas are taken (VTI-BRD-010).
|
|
5588
|
+
*/
|
|
5589
|
+
proposals: Window;
|
|
5590
|
+
/**
|
|
5591
|
+
* When every idea's election takes ballots. Opens after `proposals` opens and closes after it closes (VTI-BRD-001).
|
|
5592
|
+
*/
|
|
5593
|
+
voting: Window;
|
|
5594
|
+
/**
|
|
5595
|
+
* @maxItems 32
|
|
5596
|
+
*/
|
|
5597
|
+
topics?: Topic_VtcBoardsV0_1[];
|
|
5598
|
+
/**
|
|
5599
|
+
* @maxItems 16
|
|
5600
|
+
*/
|
|
5601
|
+
formats?: [] | [IdeaFormat] | [IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat, IdeaFormat] | [
|
|
5602
|
+
IdeaFormat,
|
|
5603
|
+
IdeaFormat,
|
|
5604
|
+
IdeaFormat,
|
|
5605
|
+
IdeaFormat,
|
|
5606
|
+
IdeaFormat,
|
|
5607
|
+
IdeaFormat,
|
|
5608
|
+
IdeaFormat,
|
|
5609
|
+
IdeaFormat,
|
|
5610
|
+
IdeaFormat,
|
|
5611
|
+
IdeaFormat
|
|
5612
|
+
] | [
|
|
5613
|
+
IdeaFormat,
|
|
5614
|
+
IdeaFormat,
|
|
5615
|
+
IdeaFormat,
|
|
5616
|
+
IdeaFormat,
|
|
5617
|
+
IdeaFormat,
|
|
5618
|
+
IdeaFormat,
|
|
5619
|
+
IdeaFormat,
|
|
5620
|
+
IdeaFormat,
|
|
5621
|
+
IdeaFormat,
|
|
5622
|
+
IdeaFormat,
|
|
5623
|
+
IdeaFormat
|
|
5624
|
+
] | [
|
|
5625
|
+
IdeaFormat,
|
|
5626
|
+
IdeaFormat,
|
|
5627
|
+
IdeaFormat,
|
|
5628
|
+
IdeaFormat,
|
|
5629
|
+
IdeaFormat,
|
|
5630
|
+
IdeaFormat,
|
|
5631
|
+
IdeaFormat,
|
|
5632
|
+
IdeaFormat,
|
|
5633
|
+
IdeaFormat,
|
|
5634
|
+
IdeaFormat,
|
|
5635
|
+
IdeaFormat,
|
|
5636
|
+
IdeaFormat
|
|
5637
|
+
] | [
|
|
5638
|
+
IdeaFormat,
|
|
5639
|
+
IdeaFormat,
|
|
5640
|
+
IdeaFormat,
|
|
5641
|
+
IdeaFormat,
|
|
5642
|
+
IdeaFormat,
|
|
5643
|
+
IdeaFormat,
|
|
5644
|
+
IdeaFormat,
|
|
5645
|
+
IdeaFormat,
|
|
5646
|
+
IdeaFormat,
|
|
5647
|
+
IdeaFormat,
|
|
5648
|
+
IdeaFormat,
|
|
5649
|
+
IdeaFormat,
|
|
5650
|
+
IdeaFormat
|
|
5651
|
+
] | [
|
|
5652
|
+
IdeaFormat,
|
|
5653
|
+
IdeaFormat,
|
|
5654
|
+
IdeaFormat,
|
|
5655
|
+
IdeaFormat,
|
|
5656
|
+
IdeaFormat,
|
|
5657
|
+
IdeaFormat,
|
|
5658
|
+
IdeaFormat,
|
|
5659
|
+
IdeaFormat,
|
|
5660
|
+
IdeaFormat,
|
|
5661
|
+
IdeaFormat,
|
|
5662
|
+
IdeaFormat,
|
|
5663
|
+
IdeaFormat,
|
|
5664
|
+
IdeaFormat,
|
|
5665
|
+
IdeaFormat
|
|
5666
|
+
] | [
|
|
5667
|
+
IdeaFormat,
|
|
5668
|
+
IdeaFormat,
|
|
5669
|
+
IdeaFormat,
|
|
5670
|
+
IdeaFormat,
|
|
5671
|
+
IdeaFormat,
|
|
5672
|
+
IdeaFormat,
|
|
5673
|
+
IdeaFormat,
|
|
5674
|
+
IdeaFormat,
|
|
5675
|
+
IdeaFormat,
|
|
5676
|
+
IdeaFormat,
|
|
5677
|
+
IdeaFormat,
|
|
5678
|
+
IdeaFormat,
|
|
5679
|
+
IdeaFormat,
|
|
5680
|
+
IdeaFormat,
|
|
5681
|
+
IdeaFormat
|
|
5682
|
+
] | [
|
|
5683
|
+
IdeaFormat,
|
|
5684
|
+
IdeaFormat,
|
|
5685
|
+
IdeaFormat,
|
|
5686
|
+
IdeaFormat,
|
|
5687
|
+
IdeaFormat,
|
|
5688
|
+
IdeaFormat,
|
|
5689
|
+
IdeaFormat,
|
|
5690
|
+
IdeaFormat,
|
|
5691
|
+
IdeaFormat,
|
|
5692
|
+
IdeaFormat,
|
|
5693
|
+
IdeaFormat,
|
|
5694
|
+
IdeaFormat,
|
|
5695
|
+
IdeaFormat,
|
|
5696
|
+
IdeaFormat,
|
|
5697
|
+
IdeaFormat,
|
|
5698
|
+
IdeaFormat
|
|
5699
|
+
];
|
|
5700
|
+
/**
|
|
5701
|
+
* The most ideas one member may have on the board that are not `withdrawn` or `declined`. Absent: no limit beyond the community's own.
|
|
5702
|
+
*/
|
|
5703
|
+
maxIdeasPerMember?: number;
|
|
5704
|
+
/**
|
|
5705
|
+
* How facilitators intend to select, in plain words (VTI-BRD-041), e.g. "The twelve ideas the most members would attend".
|
|
5706
|
+
*/
|
|
5707
|
+
selectionRule?: string;
|
|
5708
|
+
/**
|
|
5709
|
+
* @maxItems 256
|
|
5710
|
+
*/
|
|
5711
|
+
timetable?: Slot_VtcBoardsV0_1[];
|
|
5712
|
+
template: ElectionTemplate;
|
|
5713
|
+
createdAt: string;
|
|
5714
|
+
/**
|
|
5715
|
+
* Whether the caller facilitates this board.
|
|
5716
|
+
*/
|
|
5717
|
+
facilitator: boolean;
|
|
5718
|
+
/**
|
|
5719
|
+
* How many of the board's ideas are in each state the caller may see.
|
|
5720
|
+
*/
|
|
5721
|
+
ideaCounts: {
|
|
5722
|
+
proposed?: number;
|
|
5723
|
+
open?: number;
|
|
5724
|
+
selected?: number;
|
|
5725
|
+
notSelected?: number;
|
|
5726
|
+
declined?: number;
|
|
5727
|
+
merged?: number;
|
|
5728
|
+
withdrawn?: number;
|
|
5729
|
+
};
|
|
5730
|
+
}
|
|
5491
5731
|
export interface CastEntry_VotingV0_1 {
|
|
5492
5732
|
kind: "cast";
|
|
5493
5733
|
cast: Cast;
|
|
@@ -6027,6 +6267,23 @@ export interface ChunkedDescriptor {
|
|
|
6027
6267
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
6028
6268
|
expiresAt: ExpiresAt;
|
|
6029
6269
|
}
|
|
6270
|
+
/**
|
|
6271
|
+
* A collection claim in force for one identifier: the client that is its collector, when the claim ends, and whether the claimant may still renew it. A claim released by a party other than its claimant, or whose claimant's access control entry no longer gives it standing in the context, is not renewable and still ends at `endsAt`, because the claimant is still connected until its own clock tells it to stop (VTI-NTF-084).
|
|
6272
|
+
*/
|
|
6273
|
+
export interface Claim {
|
|
6274
|
+
/**
|
|
6275
|
+
* The client holding the claim: the subject of the access control entry it was granted to.
|
|
6276
|
+
*/
|
|
6277
|
+
claimant: Did_NotificationsV0_1;
|
|
6278
|
+
/**
|
|
6279
|
+
* When the claim ends unless renewed. The claimant stops collecting before this instant less its clock-skew tolerance; the VTA resumes no earlier than this instant plus its own (VTI-NTF-083, VTI-NTF-084).
|
|
6280
|
+
*/
|
|
6281
|
+
endsAt: string;
|
|
6282
|
+
/**
|
|
6283
|
+
* Whether the claimant may renew the claim with vta/collection/claim before it ends.
|
|
6284
|
+
*/
|
|
6285
|
+
renewable: boolean;
|
|
6286
|
+
}
|
|
6030
6287
|
/**
|
|
6031
6288
|
* Which claim a `claim` field accepts, from which credentials and issuers.
|
|
6032
6289
|
*/
|
|
@@ -6046,6 +6303,15 @@ export interface ClaimSelector {
|
|
|
6046
6303
|
*/
|
|
6047
6304
|
issuers?: string[];
|
|
6048
6305
|
}
|
|
6306
|
+
/**
|
|
6307
|
+
* The collection state of one identifier. `claim` is present exactly when `collector` is `client`, and `notCollectedReason` exactly when it is `none`.
|
|
6308
|
+
*/
|
|
6309
|
+
export interface CollectionEntry {
|
|
6310
|
+
identifier: Did_NotificationsV0_1;
|
|
6311
|
+
collector: Collector;
|
|
6312
|
+
claim?: Claim;
|
|
6313
|
+
notCollectedReason?: NotCollectedReason;
|
|
6314
|
+
}
|
|
6049
6315
|
/**
|
|
6050
6316
|
* OPTIONAL. How the community asks to be shown to a prospective applicant: a name, an accent colour and a logo. Presentation only, self-asserted and unverified — `communityDid` identifies the community, never `branding`. Not part of any criterion, so not covered by a `requirementsDigest`. Every member is optional.
|
|
6051
6317
|
*/
|
|
@@ -8088,6 +8354,114 @@ export interface ElectionSummary {
|
|
|
8088
8354
|
ballotsAdmitted: number;
|
|
8089
8355
|
head: BoardHead;
|
|
8090
8356
|
}
|
|
8357
|
+
/**
|
|
8358
|
+
* Every member of an idea's election manifest that the board fixes (VTI-BRD-030). When a facilitator accepts an idea the community completes it: `electionId` (naming the board and the idea), `community`, `title` and `description` from the idea, `registrationOpensAt` and `votingOpensAt` from the board's voting window's `opensAt` or the acceptance, whichever is later, `votingClosesAt` from its `closesAt`, `roll` from the board's audience (rule `members`, or a credential roll naming the group), and `binding: false`. A board's template is never binding, and so has no `binding` member.
|
|
8359
|
+
*/
|
|
8360
|
+
export interface ElectionTemplate {
|
|
8361
|
+
/**
|
|
8362
|
+
* @minItems 1
|
|
8363
|
+
* @maxItems 16
|
|
8364
|
+
*/
|
|
8365
|
+
questions: [Question] | [Question, Question] | [Question, Question, Question] | [Question, Question, Question, Question] | [Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question, Question, Question, Question, Question] | [Question, Question, Question, Question, Question, Question, Question, Question, Question, Question, Question] | [
|
|
8366
|
+
Question,
|
|
8367
|
+
Question,
|
|
8368
|
+
Question,
|
|
8369
|
+
Question,
|
|
8370
|
+
Question,
|
|
8371
|
+
Question,
|
|
8372
|
+
Question,
|
|
8373
|
+
Question,
|
|
8374
|
+
Question,
|
|
8375
|
+
Question,
|
|
8376
|
+
Question,
|
|
8377
|
+
Question
|
|
8378
|
+
] | [
|
|
8379
|
+
Question,
|
|
8380
|
+
Question,
|
|
8381
|
+
Question,
|
|
8382
|
+
Question,
|
|
8383
|
+
Question,
|
|
8384
|
+
Question,
|
|
8385
|
+
Question,
|
|
8386
|
+
Question,
|
|
8387
|
+
Question,
|
|
8388
|
+
Question,
|
|
8389
|
+
Question,
|
|
8390
|
+
Question,
|
|
8391
|
+
Question
|
|
8392
|
+
] | [
|
|
8393
|
+
Question,
|
|
8394
|
+
Question,
|
|
8395
|
+
Question,
|
|
8396
|
+
Question,
|
|
8397
|
+
Question,
|
|
8398
|
+
Question,
|
|
8399
|
+
Question,
|
|
8400
|
+
Question,
|
|
8401
|
+
Question,
|
|
8402
|
+
Question,
|
|
8403
|
+
Question,
|
|
8404
|
+
Question,
|
|
8405
|
+
Question,
|
|
8406
|
+
Question
|
|
8407
|
+
] | [
|
|
8408
|
+
Question,
|
|
8409
|
+
Question,
|
|
8410
|
+
Question,
|
|
8411
|
+
Question,
|
|
8412
|
+
Question,
|
|
8413
|
+
Question,
|
|
8414
|
+
Question,
|
|
8415
|
+
Question,
|
|
8416
|
+
Question,
|
|
8417
|
+
Question,
|
|
8418
|
+
Question,
|
|
8419
|
+
Question,
|
|
8420
|
+
Question,
|
|
8421
|
+
Question,
|
|
8422
|
+
Question
|
|
8423
|
+
] | [
|
|
8424
|
+
Question,
|
|
8425
|
+
Question,
|
|
8426
|
+
Question,
|
|
8427
|
+
Question,
|
|
8428
|
+
Question,
|
|
8429
|
+
Question,
|
|
8430
|
+
Question,
|
|
8431
|
+
Question,
|
|
8432
|
+
Question,
|
|
8433
|
+
Question,
|
|
8434
|
+
Question,
|
|
8435
|
+
Question,
|
|
8436
|
+
Question,
|
|
8437
|
+
Question,
|
|
8438
|
+
Question,
|
|
8439
|
+
Question
|
|
8440
|
+
];
|
|
8441
|
+
secrecy: SecrecyLevel;
|
|
8442
|
+
revote: Revote;
|
|
8443
|
+
/**
|
|
8444
|
+
* The ballot box's board for each idea's election, as a manifest states it (VTI-VOT-052). `public` lets a board show each idea's ballot count while voting is open (VTI-BRD-033).
|
|
8445
|
+
*/
|
|
8446
|
+
board: {
|
|
8447
|
+
visibility: BoardVisibility;
|
|
8448
|
+
auditors: string[];
|
|
8449
|
+
};
|
|
8450
|
+
/**
|
|
8451
|
+
* The DID of the voting service every idea's election is registered with; one on the community's list (VTI-VOT-082).
|
|
8452
|
+
*/
|
|
8453
|
+
ballotBox: string;
|
|
8454
|
+
trustees?: Trustees;
|
|
8455
|
+
allowEarlyClose: boolean;
|
|
8456
|
+
/**
|
|
8457
|
+
* Open elections only: whether running totals may be read while voting is open (VTI-VOT-061). A board SHOULD set it false (VTI-BRD-033).
|
|
8458
|
+
*/
|
|
8459
|
+
resultsBeforeClose: boolean;
|
|
8460
|
+
/**
|
|
8461
|
+
* Counted ballots required before any text answer is disclosed (VTI-VOT-065); SHOULD be at least 10.
|
|
8462
|
+
*/
|
|
8463
|
+
textReleaseThreshold: number;
|
|
8464
|
+
}
|
|
8091
8465
|
/**
|
|
8092
8466
|
* A tallied-encrypted ballot: one EncryptedQuestion per manifest question, in the manifest's order. Never decrypted (VTI-VOT-064).
|
|
8093
8467
|
*/
|
|
@@ -9134,6 +9508,93 @@ export interface HpkeArmoredEnvelope_VaultV0_2 {
|
|
|
9134
9508
|
*/
|
|
9135
9509
|
producerAssertion?: "didSigned" | "attested" | "pinnedOnly";
|
|
9136
9510
|
}
|
|
9511
|
+
/**
|
|
9512
|
+
* An idea as one caller may see it.
|
|
9513
|
+
*/
|
|
9514
|
+
export interface Idea {
|
|
9515
|
+
ideaId: IdeaId;
|
|
9516
|
+
boardId: BoardId;
|
|
9517
|
+
state: IdeaState;
|
|
9518
|
+
title: IdeaTitle;
|
|
9519
|
+
description: IdeaDescription;
|
|
9520
|
+
format?: IdeaFormat;
|
|
9521
|
+
topic?: Topic_VtcBoardsV0_1;
|
|
9522
|
+
proposer: Author;
|
|
9523
|
+
proposedAt: string;
|
|
9524
|
+
/**
|
|
9525
|
+
* Notes on the idea the caller may read.
|
|
9526
|
+
*/
|
|
9527
|
+
noteCount: number;
|
|
9528
|
+
/**
|
|
9529
|
+
* Present once an election was opened for the idea.
|
|
9530
|
+
*/
|
|
9531
|
+
election?: IdeaElection;
|
|
9532
|
+
opening?: IdeaOpening;
|
|
9533
|
+
/**
|
|
9534
|
+
* Present in `declined`, `merged`, `selected` and `notSelected`.
|
|
9535
|
+
*/
|
|
9536
|
+
decision?: IdeaDecision;
|
|
9537
|
+
}
|
|
9538
|
+
/**
|
|
9539
|
+
* A facilitator's decision on an idea: declining or merging it (VTI-BRD-013), or selecting it or not (VTI-BRD-040). The deciding facilitator is not named to the audience.
|
|
9540
|
+
*/
|
|
9541
|
+
export interface IdeaDecision {
|
|
9542
|
+
decidedAt: string;
|
|
9543
|
+
reason?: Reason_VtcBoardsV0_1;
|
|
9544
|
+
/**
|
|
9545
|
+
* Present exactly when the idea is `merged`.
|
|
9546
|
+
*/
|
|
9547
|
+
mergedInto?: IdeaId;
|
|
9548
|
+
/**
|
|
9549
|
+
* A `selected` idea's place in the board's timetable, where it has one.
|
|
9550
|
+
*/
|
|
9551
|
+
slotId?: Key_VotingV0_1;
|
|
9552
|
+
/**
|
|
9553
|
+
* `selected` or `notSelected` only: whether the facilitator said the decision departs from the board's `selectionRule` (VTI-BRD-041); `reason` then says why.
|
|
9554
|
+
*/
|
|
9555
|
+
departsFromRule?: boolean;
|
|
9556
|
+
/**
|
|
9557
|
+
* Present when a facilitator decided their own idea because no other facilitator existed (VTI-BRD-013).
|
|
9558
|
+
*/
|
|
9559
|
+
ownIdea?: true;
|
|
9560
|
+
}
|
|
9561
|
+
/**
|
|
9562
|
+
* An idea's election as a board shows it (VTI-BRD-033): never who took a ticket or cast a ballot.
|
|
9563
|
+
*/
|
|
9564
|
+
export interface IdeaElection {
|
|
9565
|
+
electionId: ElectionId;
|
|
9566
|
+
state: ElectionState;
|
|
9567
|
+
/**
|
|
9568
|
+
* The ballot box's latest board head's ballot count, where its board is public (VTI-VOT-052); absent otherwise. Counts ballots, not voters, where a later ballot replaces an earlier one.
|
|
9569
|
+
*/
|
|
9570
|
+
ballotsOnBoard?: number;
|
|
9571
|
+
/**
|
|
9572
|
+
* When the head `ballotsOnBoard` was read from was issued.
|
|
9573
|
+
*/
|
|
9574
|
+
boardHeadIssuedAt?: string;
|
|
9575
|
+
/**
|
|
9576
|
+
* Present once the election is tallied.
|
|
9577
|
+
*/
|
|
9578
|
+
result?: ElectionResult;
|
|
9579
|
+
/**
|
|
9580
|
+
* Present with `result`: whether the community certified it (VTI-VOT-071).
|
|
9581
|
+
*/
|
|
9582
|
+
certified?: boolean;
|
|
9583
|
+
}
|
|
9584
|
+
/**
|
|
9585
|
+
* Shown to facilitators only: an accepted idea whose election the ballot box has not yet registered, so the idea is still `proposed` (VTI-BRD-031). `refusal` is the ballot box's or community's refusal of the last attempt, after which the idea is no longer being opened.
|
|
9586
|
+
*/
|
|
9587
|
+
export interface IdeaOpening {
|
|
9588
|
+
electionId: ElectionId;
|
|
9589
|
+
/**
|
|
9590
|
+
* When the facilitator accepted the idea.
|
|
9591
|
+
*/
|
|
9592
|
+
startedAt: string;
|
|
9593
|
+
refusal?: {
|
|
9594
|
+
code: string;
|
|
9595
|
+
refusedAt: string;
|
|
9596
|
+
};
|
|
9597
|
+
}
|
|
9137
9598
|
export interface IdentityChange {
|
|
9138
9599
|
/**
|
|
9139
9600
|
* `addKey` — a verification method joins its role's relationship and `keyRoles`. `retireKey` — a verification method leaves its relationship, `keyRoles` and the document. `revokeKey` — a verification method leaves its relationship and `keyRoles`, and stays in `verificationMethod` with `revoked` set to the compromise time (CONVENTIONS.md §9.1). `rotateUpdateKey` — the identifier's update authority moves to a committed routine successor. `commitUpdateKey` — a new routine successor is committed. `replaceRecoveryCommitment` — the recovery commitment changes. `useRecoveryKey` — the change is authorized by the recovery key, which the identifier then reveals.
|
|
@@ -10518,6 +10979,25 @@ export interface Node {
|
|
|
10518
10979
|
*/
|
|
10519
10980
|
url?: string;
|
|
10520
10981
|
}
|
|
10982
|
+
/**
|
|
10983
|
+
* A note as one caller may see it. `text` is absent from a `withdrawn` or `hidden` note for anyone but its author and the board's facilitators (VTI-BRD-021).
|
|
10984
|
+
*/
|
|
10985
|
+
export interface Note {
|
|
10986
|
+
noteId: NoteId_VtcBoardsV0_1;
|
|
10987
|
+
boardId: BoardId;
|
|
10988
|
+
/**
|
|
10989
|
+
* The idea the note is attached to; absent for a note on the board itself.
|
|
10990
|
+
*/
|
|
10991
|
+
ideaId?: IdeaId;
|
|
10992
|
+
author: Author;
|
|
10993
|
+
text?: NoteText_VtcBoardsV0_1;
|
|
10994
|
+
createdAt: string;
|
|
10995
|
+
state: NoteState;
|
|
10996
|
+
/**
|
|
10997
|
+
* A `hidden` note's reason, shown to everyone who sees the note.
|
|
10998
|
+
*/
|
|
10999
|
+
hiddenReason?: Reason_VtcBoardsV0_1;
|
|
11000
|
+
}
|
|
10521
11001
|
/**
|
|
10522
11002
|
* The members of one notification, as notifications/notify carries them and as a recipient's agent records them. The originator is the `issuer` of the notifications/notify document and the addressee its `recipient`; neither is repeated here, because the originator's proof covers both.
|
|
10523
11003
|
*/
|
|
@@ -13645,6 +14125,15 @@ export interface AndroidApp_VaultV0_2 {
|
|
|
13645
14125
|
*/
|
|
13646
14126
|
sha256CertFingerprints: [string, ...string[]];
|
|
13647
14127
|
}
|
|
14128
|
+
/**
|
|
14129
|
+
* One place in a board's timetable that a selected idea can be put in (VTI-BRD-040): a place (`label`, e.g. a room) and a time.
|
|
14130
|
+
*/
|
|
14131
|
+
export interface Slot_VtcBoardsV0_1 {
|
|
14132
|
+
slotId: Key_VotingV0_1;
|
|
14133
|
+
label: string;
|
|
14134
|
+
startsAt: string;
|
|
14135
|
+
endsAt: string;
|
|
14136
|
+
}
|
|
13648
14137
|
/**
|
|
13649
14138
|
* One transition in an entry's lifecycle.
|
|
13650
14139
|
*/
|
|
@@ -15075,6 +15564,13 @@ export interface WebvhServerRecord {
|
|
|
15075
15564
|
updatedAt: string;
|
|
15076
15565
|
ext?: Ext;
|
|
15077
15566
|
}
|
|
15567
|
+
/**
|
|
15568
|
+
* A period, open from `opensAt` until `closesAt`. `closesAt` is after `opensAt` (a consumer check; JSON Schema cannot compare them).
|
|
15569
|
+
*/
|
|
15570
|
+
export interface Window {
|
|
15571
|
+
opensAt: string;
|
|
15572
|
+
closesAt: string;
|
|
15573
|
+
}
|
|
15078
15574
|
export interface WitnessKey {
|
|
15079
15575
|
/**
|
|
15080
15576
|
* The witness service's identifier for this identity. Opaque to the requester.
|