@openvtc/trust-tasks 0.26.1 → 0.26.3
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 +152 -0
- package/dist/_shared/components.d.ts +107 -1
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/rooms/owner/group/add/0.1/payload.d.ts +417 -0
- package/dist/rooms/owner/group/add/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/add/0.1/payload.js +218 -0
- package/dist/rooms/owner/group/add/0.1/payload.js.map +1 -0
- package/dist/rooms/owner/group/create/0.1/payload.d.ts +299 -0
- package/dist/rooms/owner/group/create/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/create/0.1/payload.js +163 -0
- package/dist/rooms/owner/group/create/0.1/payload.js.map +1 -0
- package/dist/rooms/owner/group/remove/0.1/payload.d.ts +343 -0
- package/dist/rooms/owner/group/remove/0.1/payload.d.ts.map +1 -0
- package/dist/rooms/owner/group/remove/0.1/payload.js +184 -0
- package/dist/rooms/owner/group/remove/0.1/payload.js.map +1 -0
- package/dist/rooms/owner/register/0.1/payload.d.ts +3 -3
- package/dist/rooms/owner/register/0.1/payload.js +1 -1
- package/dist/rooms/owner/register/0.1/payload.js.map +1 -1
- package/dist/vtc/_shared/0.1/community-room.d.ts +16 -0
- package/dist/vtc/_shared/0.1/community-room.d.ts.map +1 -0
- package/dist/vtc/_shared/0.1/community-room.js +6 -0
- package/dist/vtc/_shared/0.1/community-room.js.map +1 -0
- package/dist/vtc/admin/events/_shared/0.1/topic.d.ts +1 -1
- package/dist/vtc/admin/events/_shared/0.1/topic.d.ts.map +1 -1
- package/dist/vtc/admin/events/_shared/0.2/topic.d.ts +28 -0
- package/dist/vtc/admin/events/_shared/0.2/topic.d.ts.map +1 -0
- package/dist/vtc/admin/events/_shared/0.2/topic.js +6 -0
- package/dist/vtc/admin/events/_shared/0.2/topic.js.map +1 -0
- package/dist/vtc/admin/events/event/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/events/event/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/events/event/0.2/payload.d.ts +172 -0
- package/dist/vtc/admin/events/event/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/event/0.2/payload.js +100 -0
- package/dist/vtc/admin/events/event/0.2/payload.js.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.1/payload.d.ts +1 -1
- package/dist/vtc/admin/events/subscribe/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/admin/events/subscribe/0.2/payload.d.ts +409 -0
- package/dist/vtc/admin/events/subscribe/0.2/payload.d.ts.map +1 -0
- package/dist/vtc/admin/events/subscribe/0.2/payload.js +232 -0
- package/dist/vtc/admin/events/subscribe/0.2/payload.js.map +1 -0
- package/dist/vtc/rooms/community/create/0.1/payload.d.ts +789 -0
- package/dist/vtc/rooms/community/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/create/0.1/payload.js +463 -0
- package/dist/vtc/rooms/community/create/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/community/get/0.1/payload.d.ts +711 -0
- package/dist/vtc/rooms/community/get/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/get/0.1/payload.js +429 -0
- package/dist/vtc/rooms/community/get/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/community/list/0.1/payload.d.ts +772 -0
- package/dist/vtc/rooms/community/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/list/0.1/payload.js +452 -0
- package/dist/vtc/rooms/community/list/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/community/members/add/0.1/payload.d.ts +535 -0
- package/dist/vtc/rooms/community/members/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/members/add/0.1/payload.js +314 -0
- package/dist/vtc/rooms/community/members/add/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/community/members/list/0.1/payload.d.ts +554 -0
- package/dist/vtc/rooms/community/members/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/members/list/0.1/payload.js +315 -0
- package/dist/vtc/rooms/community/members/list/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/community/members/remove/0.1/payload.d.ts +533 -0
- package/dist/vtc/rooms/community/members/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/community/members/remove/0.1/payload.js +313 -0
- package/dist/vtc/rooms/community/members/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/offers/accept/0.1/payload.d.ts +349 -0
- package/dist/vtc/rooms/offers/accept/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/offers/accept/0.1/payload.js +188 -0
- package/dist/vtc/rooms/offers/accept/0.1/payload.js.map +1 -0
- package/dist/vtc/rooms/offers/list/0.1/payload.d.ts +692 -0
- package/dist/vtc/rooms/offers/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/rooms/offers/list/0.1/payload.js +408 -0
- package/dist/vtc/rooms/offers/list/0.1/payload.js.map +1 -0
- package/package.json +1 -1
- package/src/_shared/components.ts +120 -1
- package/src/index.ts +15 -0
- package/src/rooms/owner/group/add/0.1/payload.ts +288 -0
- package/src/rooms/owner/group/create/0.1/payload.ts +213 -0
- package/src/rooms/owner/group/remove/0.1/payload.ts +242 -0
- package/src/rooms/owner/register/0.1/payload.ts +2 -2
- package/src/vtc/_shared/0.1/community-room.ts +17 -0
- package/src/vtc/admin/events/_shared/0.1/topic.ts +1 -1
- package/src/vtc/admin/events/_shared/0.2/topic.ts +29 -0
- package/src/vtc/admin/events/event/0.1/payload.ts +1 -1
- package/src/vtc/admin/events/event/0.2/payload.ts +134 -0
- package/src/vtc/admin/events/subscribe/0.1/payload.ts +1 -1
- package/src/vtc/admin/events/subscribe/0.2/payload.ts +306 -0
- package/src/vtc/rooms/community/create/0.1/payload.ts +509 -0
- package/src/vtc/rooms/community/get/0.1/payload.ts +461 -0
- package/src/vtc/rooms/community/list/0.1/payload.ts +495 -0
- package/src/vtc/rooms/community/members/add/0.1/payload.ts +356 -0
- package/src/vtc/rooms/community/members/list/0.1/payload.ts +366 -0
- package/src/vtc/rooms/community/members/remove/0.1/payload.ts +351 -0
- package/src/vtc/rooms/offers/accept/0.1/payload.ts +240 -0
- package/src/vtc/rooms/offers/list/0.1/payload.ts +451 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,158 @@ 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.26.3 — 2026-10-14
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Documentation
|
|
18
|
+
|
|
19
|
+
- **vtc/rooms/community/members/remove**: Link rooms/owner/group/remove (#769)
|
|
20
|
+
|
|
21
|
+
#768 named the task in prose only, because it was not yet on main and the build
|
|
22
|
+
refuses links to missing specifications. #767 has since merged.
|
|
23
|
+
|
|
24
|
+
## 0.26.2 — 2026-10-14
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **vtc**: Community-owned rooms and member offers — vtc/rooms/community/* and vtc/rooms/offers/* (#768)
|
|
30
|
+
|
|
31
|
+
A community hosts rooms its members own, and can now own rooms itself — the
|
|
32
|
+
board's papers, a working group's drafts, a members' library — run from its
|
|
33
|
+
console. Design: verifiable-trust-infrastructure docs/05-design-notes/
|
|
34
|
+
data-rooms-files.md §8.4.
|
|
35
|
+
|
|
36
|
+
The community is the owner, and its own VTA is the key holder: the VTA mints
|
|
37
|
+
the room's DID, signs its credentials and holds the community's place in a
|
|
38
|
+
sealed room's group, through the same rooms/owner/* and rooms/keys/* tasks any
|
|
39
|
+
owner's key holder serves. The community holds no room key and no group
|
|
40
|
+
secret.
|
|
41
|
+
|
|
42
|
+
Administrators, holding the new vtc.rooms.manage (the owner's authority,
|
|
43
|
+
distinct from hosting's vtc.rooms.admin):
|
|
44
|
+
- vtc/rooms/community/create — the VTA mints, founds the group, issues the
|
|
45
|
+
community's own admin authority; the room is stored only after every
|
|
46
|
+
remote step, so a failure leaves no room behind.
|
|
47
|
+
- vtc/rooms/community/{list,get} — the owner's view, with counts and when the
|
|
48
|
+
community's own authority lapses.
|
|
49
|
+
- vtc/rooms/community/members/{add,remove,list} — add has the VTA issue the
|
|
50
|
+
invitation, membership and authority credentials (never admin) and keeps
|
|
51
|
+
them as an offer; remove advances a sealed room's epoch through the owner's
|
|
52
|
+
group removal and says what removal does not do (no recall; an authority
|
|
53
|
+
credential is honoured until it expires, so open rooms want short expiries).
|
|
54
|
+
members/list is paged and separate from get, because a community library
|
|
55
|
+
can admit the whole community.
|
|
56
|
+
|
|
57
|
+
Members, on their own DID (pull-shaped admission: a member's VTA has no
|
|
58
|
+
inbound address):
|
|
59
|
+
- vtc/rooms/offers/list — the caller's offers and the credentials to store with
|
|
60
|
+
their own key holder; never anyone else's.
|
|
61
|
+
- vtc/rooms/offers/accept — on a sealed tier, a KeyPackage in and the Welcome
|
|
62
|
+
out, after the VTA adds the member. A repeat with the same KeyPackage gets the
|
|
63
|
+
same Welcome; an unknown outcome is admissionPending, retried safely because
|
|
64
|
+
the VTA settles a pending admission first.
|
|
65
|
+
|
|
66
|
+
Only active members of the community are admitted to its rooms. Step-up and
|
|
67
|
+
consent are described as the intended model, not declared (SPEC §7.3 item 13).
|
|
68
|
+
The owner's record of whom it admitted lives apart from anything the host path
|
|
69
|
+
reads, so invariant I5 and portability hold.
|
|
70
|
+
|
|
71
|
+
New shared schema vtc/_shared/0.1/community-room.schema.json. Additive for the
|
|
72
|
+
generated types: new modules only.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
### Specifications
|
|
77
|
+
|
|
78
|
+
- **rooms,vtc**: Rooms/owner/group/remove, and a `rooms` topic on the console's live events (vtc/admin/events 0.2) (#767)
|
|
79
|
+
|
|
80
|
+
rooms/owner/group/remove/0.1 — the last of the owner's group tasks
|
|
81
|
+
(data-rooms-files.md §11). Removal is an epoch advance and nothing else is:
|
|
82
|
+
the key holder drops the member's leaf and advances the room at its host
|
|
83
|
+
with the link and commit, under the caller's `admin` authority. Same
|
|
84
|
+
remote-first rules as group/add as corrected in #766: the advanced state is
|
|
85
|
+
kept durably before the host is contacted, applied only once the host
|
|
86
|
+
accepts, discarded only on a refusal, kept on an unknown outcome and settled
|
|
87
|
+
by the next request through rooms/info. At most one pending advance per room,
|
|
88
|
+
admission or removal. Refuses `ownLeaf` (an owner leaving hands the room on
|
|
89
|
+
with rooms/owner/transfer). States what removal does not do: no recall of
|
|
90
|
+
what was read, and the authority credential is a separate thing.
|
|
91
|
+
|
|
92
|
+
vtc/admin/events {_shared,subscribe,event} 0.2 — the topic set is closed per
|
|
93
|
+
version ("a topic not listed here is a new MINOR version of this
|
|
94
|
+
component"), so the `rooms` topic is a new version rather than an `ext`
|
|
95
|
+
member. `rooms` prompts vtc/rooms/list, vtc/rooms/usage and
|
|
96
|
+
vtc/storage/configs/list, goes to holders of vtc.rooms.admin, carries no
|
|
97
|
+
count, and is hinted when a room is registered or removed or changes
|
|
98
|
+
lifecycle state, when a room's usage or a storage config's held bytes
|
|
99
|
+
crosses 80, 95 or 100 percent of a limit or capacity in either direction,
|
|
100
|
+
and when a storage config is created, changed or changes state — naming
|
|
101
|
+
none of them (data-rooms-files.md §6.3 alerts). subscribe 0.2 allows up to
|
|
102
|
+
seven topics. 0.1 is unchanged; a community serving both answers each at its
|
|
103
|
+
own version.
|
|
104
|
+
|
|
105
|
+
Additive for the generated types: new modules; the TypeScript 0.1 modules
|
|
106
|
+
keep exporting `Topic` (the generator now disambiguates the two shared
|
|
107
|
+
definitions internally).
|
|
108
|
+
|
|
109
|
+
- **rooms**: Group/add keeps a pending admission on an unknown outcome; details schemas for group codes (#766)
|
|
110
|
+
|
|
111
|
+
Corrections to rooms/owner/group/{create,add}/0.1 (drafts, #763), found
|
|
112
|
+
implementing them in the VTA:
|
|
113
|
+
|
|
114
|
+
- add, item 5: discard the pending admission only on a refusal. An
|
|
115
|
+
unreachable or silent host is an unknown outcome — it may have accepted —
|
|
116
|
+
and discarding then would leave the owner an epoch behind their own room.
|
|
117
|
+
The pending admission is kept for item 6; hostUnreachable's meaning says so
|
|
118
|
+
instead of "nothing was changed".
|
|
119
|
+
- add, items 2-3: what is kept is the advanced group state with the link,
|
|
120
|
+
commit and Welcome, beside the group the recipient holds, since a
|
|
121
|
+
committer cannot process its own commit later.
|
|
122
|
+
- add, item 6: the host's epoch is read with rooms/info under the caller's
|
|
123
|
+
read authority, from the host the admission was sent to; a host at neither
|
|
124
|
+
epoch has moved on, so discard and refuse epochConflict.
|
|
125
|
+
- detailsSchema for create's alreadyExists (epoch) and add's epochConflict
|
|
126
|
+
(hostEpoch), which the text already promised.
|
|
127
|
+
- create, item 1: the gates on naming the key are issue-membership's, but
|
|
128
|
+
nothing is signed, so a signing quota is not consumed or consulted.
|
|
129
|
+
|
|
130
|
+
- **rooms**: Rooms/owner/group/{create,add} — the owner's agent founds and grows a sealed room's group; register signs as the owner (#763)
|
|
131
|
+
|
|
132
|
+
* spec(rooms): rooms/owner/group/{create,add} — the owner's agent founds and grows a sealed room's group; register signs as the owner
|
|
133
|
+
|
|
134
|
+
A sealed room (`attributed`, `private`) cannot be written to until its MLS
|
|
135
|
+
group exists, and every member reaches the group by a Welcome — except the
|
|
136
|
+
owner, whom nobody can welcome. The member half is specified
|
|
137
|
+
(`rooms/keys/{key-package,welcome,commit}`); the owner half was not, so no
|
|
138
|
+
surface could found a sealed room or admit anyone to one.
|
|
139
|
+
|
|
140
|
+
- `rooms/owner/group/create/0.1`: the owner's key holder forms the room's
|
|
141
|
+
group with the owner as its only leaf, at room epoch 1 (the epoch a host
|
|
142
|
+
records at registration). Entitlement: control of the room's signing key,
|
|
143
|
+
as for issuing its credentials. Refuses `alreadyExists` rather than
|
|
144
|
+
replacing a group whose key schedule sealed records depend on.
|
|
145
|
+
- `rooms/owner/group/add/0.1`: the key holder admits a member's KeyPackage,
|
|
146
|
+
advances the room at its host with `rooms/epoch/mint` (link and commit
|
|
147
|
+
included, the caller's `admin` authority presented), and returns the
|
|
148
|
+
Welcome for the caller to deliver with `rooms/keys/welcome` — never
|
|
149
|
+
through the host. Remote first: the pending commit is kept durably, sent,
|
|
150
|
+
and applied only once the host accepts, and reconciled against the host's
|
|
151
|
+
epoch after a crash, since a key holder cannot process its own commit
|
|
152
|
+
from the wire.
|
|
153
|
+
- `rooms/owner/register/0.1` (draft, clarified in place): the key holder
|
|
154
|
+
sends `rooms/create` with `ownerDid` as its issuer, signed with a key of
|
|
155
|
+
that DID it holds, and never as itself; it refuses with `permissionDenied`
|
|
156
|
+
before contacting the host when it holds none. `rooms/create` names the
|
|
157
|
+
Owner as issuer, and a host running a creation policy (a community
|
|
158
|
+
admitting rooms for its members) checks the party asking is the owner it
|
|
159
|
+
names — a registration issued by the agent in another party's name is one
|
|
160
|
+
no host can tell from registering rooms in a stranger's name. No schema
|
|
161
|
+
change beyond the `ownerDid` description.
|
|
162
|
+
|
|
163
|
+
Additive for the generated types: two new modules, no change to an
|
|
164
|
+
existing type.
|
|
165
|
+
|
|
14
166
|
## 0.26.1 — 2026-10-14
|
|
15
167
|
|
|
16
168
|
|
|
@@ -707,6 +707,21 @@ export type LimitSource = "policy" | "override" | "default";
|
|
|
707
707
|
* The two-digit number the service chooses at claim, shows only to the starter (through redeem), and the approver types from the starter's screen. A string so that a leading zero survives.
|
|
708
708
|
*/
|
|
709
709
|
export type MatchNumber = string;
|
|
710
|
+
/**
|
|
711
|
+
* What a member of a community-owned room may do there. `admin` is not among them: minting epochs, admitting and removing members are the community's, as the room's owner, and are exercised through the vtc/rooms/community/* tasks rather than by any member's credential. `curate` is not implied by `write`.
|
|
712
|
+
*/
|
|
713
|
+
export type MemberAction = "read" | "write" | "curate";
|
|
714
|
+
/**
|
|
715
|
+
* The actions granted, at least one. An empty list confers nothing rather than everything, and a schema that allowed it would make the more dangerous reading available to a careless consumer.
|
|
716
|
+
*
|
|
717
|
+
* @minItems 1
|
|
718
|
+
* @maxItems 3
|
|
719
|
+
*/
|
|
720
|
+
export type MemberActions = [MemberAction] | [MemberAction, MemberAction] | [MemberAction, MemberAction, MemberAction];
|
|
721
|
+
/**
|
|
722
|
+
* Where an admission stands. `offered`: credentials issued and waiting for the member to collect and accept them. `admitted`: accepted — on a sealed tier, the member is in the room's group. `removed`: an administrator removed them; on a sealed tier the room has advanced past them.
|
|
723
|
+
*/
|
|
724
|
+
export type MemberState = "offered" | "admitted" | "removed";
|
|
710
725
|
/**
|
|
711
726
|
* How the request reaches the approver. A CLOSED list. Version 0.1 defines `scan`: the starter shows a trigger link (as a QR code that is also a clickable link, TRIGGER-LINK.md) and the approver's wallet reads it. `code` (a typed code of at least 8 characters, under strict rate limits) and `push` (sent to the approver's enrolled devices) are reserved names.
|
|
712
727
|
*/
|
|
@@ -866,6 +881,10 @@ export type PushRegistration = Apns | Fcm | WebPush;
|
|
|
866
881
|
* Which of an account's two queues. `receive` holds messages addressed to the account awaiting its pickup. `send` holds messages the account sent that are still held against it until their recipient deletes them — so a stalled recipient fills its senders' send queues.
|
|
867
882
|
*/
|
|
868
883
|
export type Queue = "receive" | "send";
|
|
884
|
+
/**
|
|
885
|
+
* 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.
|
|
886
|
+
*/
|
|
887
|
+
export type Reason = string;
|
|
869
888
|
/**
|
|
870
889
|
* How many records the room held when `DataCommitment` was computed — the number of leaves in that tree, tombstones included, since a tombstone is a record.
|
|
871
890
|
*
|
|
@@ -970,6 +989,10 @@ export type RoleKeyState = "pending" | "staged" | "active" | "retiring" | "retir
|
|
|
970
989
|
* A role identifier: lowercase, hyphen-separated, at most 64 characters. Compared by exact string equality. It is the value an AclEntry 0.2 carries in `role`.
|
|
971
990
|
*/
|
|
972
991
|
export type RoleName = string;
|
|
992
|
+
/**
|
|
993
|
+
* A name for the room, chosen by an administrator: shown to administrators and to the members a room is offered to. Not part of the room's identity and not sent to the room's host path. MUST NOT carry personal data.
|
|
994
|
+
*/
|
|
995
|
+
export type RoomLabel = string;
|
|
973
996
|
/**
|
|
974
997
|
* `planned` — a successor was staged, activated, and the predecessor retired on the operator's schedule. `compromise` — a key was revoked and, where the role would otherwise be empty, replaced in the same log entry. `addition` — a key was added to a role without anything leaving it (for example a post-quantum key alongside a classical one).
|
|
975
998
|
*/
|
|
@@ -1133,7 +1156,11 @@ export type TickLength = string;
|
|
|
1133
1156
|
/**
|
|
1134
1157
|
* 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.
|
|
1135
1158
|
*/
|
|
1136
|
-
export type
|
|
1159
|
+
export type Topic_VtcAdminEventsV0_1 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config";
|
|
1160
|
+
/**
|
|
1161
|
+
* 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.
|
|
1162
|
+
*/
|
|
1163
|
+
export type Topic_VtcAdminEventsV0_2 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms";
|
|
1137
1164
|
/**
|
|
1138
1165
|
* How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
|
|
1139
1166
|
*/
|
|
@@ -4323,6 +4350,33 @@ export interface CommunityProfileView {
|
|
|
4323
4350
|
*/
|
|
4324
4351
|
personhood?: PersonhoodGovernance;
|
|
4325
4352
|
}
|
|
4353
|
+
/**
|
|
4354
|
+
* One room the community owns, as its administrators see it.
|
|
4355
|
+
*/
|
|
4356
|
+
export interface CommunityRoom {
|
|
4357
|
+
room: HostedRoom;
|
|
4358
|
+
label: RoomLabel;
|
|
4359
|
+
/**
|
|
4360
|
+
* The storage config receiving the room's new uploads.
|
|
4361
|
+
*/
|
|
4362
|
+
storageConfig?: StorageConfigId;
|
|
4363
|
+
/**
|
|
4364
|
+
* Members in state `admitted`.
|
|
4365
|
+
*/
|
|
4366
|
+
admitted: number;
|
|
4367
|
+
/**
|
|
4368
|
+
* Offers not yet accepted or withdrawn.
|
|
4369
|
+
*/
|
|
4370
|
+
offered: number;
|
|
4371
|
+
/**
|
|
4372
|
+
* When the community's own `admin` authority over the room expires. A room whose owner's authority lapses can no longer advance its epoch, admit or remove; a community SHOULD renew it well before.
|
|
4373
|
+
*/
|
|
4374
|
+
ownerAuthorityValidUntil?: string;
|
|
4375
|
+
/**
|
|
4376
|
+
* The administrator who created it.
|
|
4377
|
+
*/
|
|
4378
|
+
createdBy?: string;
|
|
4379
|
+
}
|
|
4326
4380
|
/**
|
|
4327
4381
|
* A community's portable configuration: its profile plus the configuration overrides a maintainer stores for itself. Deliberately excludes per-host layers (environment variables, on-disk config files) — those describe where a maintainer runs, not what the community is, and carrying them would make an import overwrite the target host's own deployment settings.
|
|
4328
4382
|
*
|
|
@@ -6470,6 +6524,43 @@ export interface MonitorFilter {
|
|
|
6470
6524
|
*/
|
|
6471
6525
|
failuresOnly?: boolean;
|
|
6472
6526
|
}
|
|
6527
|
+
/**
|
|
6528
|
+
* A community's offer of admission to a room it owns, as the member it is addressed to sees it.
|
|
6529
|
+
*/
|
|
6530
|
+
export interface Offer {
|
|
6531
|
+
roomId: string;
|
|
6532
|
+
/**
|
|
6533
|
+
* The room's host: this community.
|
|
6534
|
+
*/
|
|
6535
|
+
host: string;
|
|
6536
|
+
label: RoomLabel;
|
|
6537
|
+
visibility: Visibility;
|
|
6538
|
+
actions: MemberActions;
|
|
6539
|
+
validUntil: string;
|
|
6540
|
+
offeredAt: string;
|
|
6541
|
+
/**
|
|
6542
|
+
* `open`: not yet accepted. `accepted`: accepted, kept listed while a repeated accept can still be answered.
|
|
6543
|
+
*/
|
|
6544
|
+
state: "open" | "accepted";
|
|
6545
|
+
credentials: OfferCredentials;
|
|
6546
|
+
}
|
|
6547
|
+
/**
|
|
6548
|
+
* The three credentials the room issued to the member, serialized as rooms/owner/{invite,issue-membership,issue-authority} return them. None is a secret: each names its subject, and a presentation of it must be signed by that subject. The member stores them in their own key holder's vault.
|
|
6549
|
+
*/
|
|
6550
|
+
export interface OfferCredentials {
|
|
6551
|
+
/**
|
|
6552
|
+
* The Verifiable Invitation Credential. On a sealed tier the member's key holder needs it to mint a KeyPackage (rooms/keys/key-package) and to accept the Welcome (rooms/keys/welcome).
|
|
6553
|
+
*/
|
|
6554
|
+
invitation: string;
|
|
6555
|
+
/**
|
|
6556
|
+
* The Verifiable Membership Credential.
|
|
6557
|
+
*/
|
|
6558
|
+
membership: string;
|
|
6559
|
+
/**
|
|
6560
|
+
* The Verifiable Authority Credential granting `actions` until `validUntil`.
|
|
6561
|
+
*/
|
|
6562
|
+
authority: string;
|
|
6563
|
+
}
|
|
6473
6564
|
export interface PasskeyVerificationMethod {
|
|
6474
6565
|
/**
|
|
6475
6566
|
* The verificationMethod id as it appears in the DID document: `<did>#passkey-<base64url(sha256(credentialId))>`. The fragment is content-derived so a verifier can locate this VM by recomputing `sha256(credential.id)`.
|
|
@@ -7609,6 +7700,21 @@ export interface RoomLimits {
|
|
|
7609
7700
|
*/
|
|
7610
7701
|
member?: ScopeLimits;
|
|
7611
7702
|
}
|
|
7703
|
+
/**
|
|
7704
|
+
* One party the community admitted to a room it owns, or offered admission to.
|
|
7705
|
+
*/
|
|
7706
|
+
export interface RoomMember {
|
|
7707
|
+
member: string;
|
|
7708
|
+
actions: MemberActions;
|
|
7709
|
+
/**
|
|
7710
|
+
* When the member's authority credential expires.
|
|
7711
|
+
*/
|
|
7712
|
+
validUntil: string;
|
|
7713
|
+
state: MemberState;
|
|
7714
|
+
offeredAt: string;
|
|
7715
|
+
admittedAt?: string;
|
|
7716
|
+
removedAt?: string;
|
|
7717
|
+
}
|
|
7612
7718
|
/**
|
|
7613
7719
|
* One change to a role's key set, from preview to completion. The rotation history of a DID is the list of these; the log is the authority for what was published, and this record adds what the log cannot say — which change was which, and (custody projection only) who asked, who approved, and why.
|
|
7614
7720
|
*/
|