initiative-plugin-sdk 10.0.1 → 10.1.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/README.md CHANGED
@@ -122,7 +122,7 @@ hooks: {
122
122
  const login = await vendorLogin(access_token);
123
123
  return { values: { login }, account_label: `@${login}` }; // or { refuse: true }
124
124
  },
125
- revoke: async ({ connection, access_token, refresh_token }) => { /* end the grant */ },
125
+ revoke: async ({ connection, access_token, refresh_token, values }) => { /* end the grant */ },
126
126
  webhook: async ({ connection, headers, body, client }) => {
127
127
  await client.emitEvent({ eventType: "plugin.acme.tracker.ticket-opened", payload: { number: 7 } });
128
128
  },
@@ -131,13 +131,28 @@ hooks: {
131
131
 
132
132
  - `after_connect` runs once a connection's flow has exchanged its code, when
133
133
  the flow sets `after_connect`.
134
+ - It also runs when an admin saves a static connection without a flow that
135
+ sets `after_connect: true` beside its `fields`, before anything is stored:
136
+ `access_token` is null and `values` holds what they typed, secrets included.
137
+ Check them at the vendor and answer the connection's managed values and an
138
+ account label, or `{ refuse: true }` to store nothing. This is where a
139
+ plug-in makes the vendor's webhooks for the connection, with a secret of 32
140
+ random bytes kept in a managed `secret` field.
134
141
  - `revoke` runs when a connection whose flow says `revoke: "hook"` ends. A
135
142
  flow can instead have Initiative end the grant itself: `rfc7009` posts to
136
143
  `revoke_url`, and `github_grant` sends GitHub's "Delete an app authorization"
137
144
  (`DELETE` with the client's credentials and the access token) to it.
145
+ - `revoke` also runs when a connection with `after_connect: true` beside its
146
+ `fields` is cleared or replaced, or a value it checked is not kept, with the
147
+ `values` it held, so you can remove what you made at the vendor.
138
148
  - `webhook` runs once per community for each vendor delivery Initiative
139
149
  received, checked and routed; `headers` are the vendor's `x-` headers,
140
- lowercased, and `body` is exactly what the vendor sent.
150
+ lowercased, and `body` is exactly what the vendor sent. Initiative checks a
151
+ delivery under `webhooks.verify.secret`: one vendor value,
152
+ `{vendor.<key>}`, or a managed `secret` field of the routed connection,
153
+ `{<key>}`. With a connection's secret, it routes the delivery first and
154
+ checks it under the secret of each connection its route value names. A
155
+ delivery whose body a community already has is not handed on again.
141
156
  - Each schedule's `run` is called once per community each interval, with
142
157
  `since`: when it last succeeded there, or null the first time.
143
158
 
@@ -342,8 +357,49 @@ pages: {
342
357
  Initiative hands the frame a one-use handoff token. Send it from the page to
343
358
  any path under the page's as `Authorization: Bearer …`: the SDK verifies it
344
359
  (type, signature, audience, page, and that it was not used before) and hands the
345
- handler `viewer`, `admin`, `initiative` and a `client` acting as the
346
- installation, narrowed to that initiative.
360
+ handler `viewer`, `admin`, `initiative`, `permissions` and a `client` acting
361
+ as the installation, narrowed to that initiative.
362
+
363
+ ### Sign in with Initiative
364
+
365
+ A plug-in with pages may also be opened at its own address, full-window.
366
+ People sign in there with their Initiative account and land in one of your
367
+ pages; your plug-in keeps no accounts of its own. Name the page and the path
368
+ Initiative sends them back to:
369
+
370
+ ```ts
371
+ signIn: { page: "board", returnPath: "/signed-in" },
372
+ ```
373
+
374
+ The return address is that path on the origin your pages are served from,
375
+ matched exactly. The flow is OpenID Connect's authorization code flow, and
376
+ `initiative.signIn` is the whole client half:
377
+
378
+ ```ts
379
+ const initiative = new Initiative({ baseUrl, publicId, key });
380
+
381
+ // 1. Send the person to Initiative; keep the rest in your own session.
382
+ const { url, ...pending } = initiative.signIn.begin({ redirectUri: "https://board.example.com/signed-in" });
383
+ session.pending = pending;
384
+ return Response.redirect(url, 302);
385
+
386
+ // 2. They come back to /signed-in, having chosen where to open the page.
387
+ const signedIn = await initiative.signIn.complete(request.url, session.pending);
388
+ startSession(signedIn.claims, signedIn.refreshToken); // the handoff's claims for that place
389
+
390
+ // 3. Before signedIn.expiresAt, renew on the server.
391
+ const renewed = await initiative.signIn.refresh(refreshToken);
392
+ ```
393
+
394
+ The ID token carries what a handoff carries for the place they chose (`sub`,
395
+ `community_ref`, `surface_id`, `community_admin`, `permissions`, and
396
+ `initiative_id` with `initiative_moderator` inside an initiative), and nothing
397
+ about their name, address or other communities. Its issuer is the deployment's
398
+ own address, so a
399
+ handoff is never accepted as an ID token, nor the other way round. Every
400
+ renewal asks Initiative again whether the person is still signed in there and
401
+ may still open the page in that place: an `invalid_grant` (`SignInError`) ends
402
+ your session. Another community is another sign-in.
347
403
 
348
404
  ### Where a community stands
349
405
 
@@ -483,8 +539,7 @@ it as the installation, with `viewer` and `subject` set, and the handler does
483
539
  the work, usually writing metadata. A declarative plug-in's names an endpoint,
484
540
  a `write`, or both, and Initiative does the work itself. Either way Initiative
485
541
  then answers the reader with the item's metadata as it stands. With `confirm`,
486
- Initiative asks first; with `admin_only: true`, only the community's admins may
487
- run it.
542
+ Initiative asks first. Who may run it is a permission (see "Who may use what").
488
543
 
489
544
  `params` names the endpoint's params Initiative asks the reader for before it
490
545
  runs the action, in a form drawn from their own declarations: each one's type,
@@ -576,6 +631,43 @@ its settings:
576
631
  help: { en: "Links issues to tasks. Name a task's reference, such as **acme-7**, in an issue's title to link it." },
577
632
  ```
578
633
 
634
+ ### Who may use what
635
+
636
+ Your plug-in never decides who uses it: the community does, with the roles it
637
+ already has. Every page, field, part, action and endpoint sits at a level and
638
+ answers to a permission there. Inside an initiative, the initiative's roles
639
+ hold it, as they hold a tool's permissions: its managers and the community's
640
+ admins always do, and its managers decide for every other role. At the
641
+ community level, the community's admins hold it, as they hold the parts of
642
+ administering the community, and a custom role on the admin rung may keep only
643
+ some.
644
+
645
+ Every plug-in has `use` at each level without declaring it. Declare more when
646
+ the community should be able to give some people a part of your plug-in and not
647
+ the rest:
648
+
649
+ ```ts
650
+ permissions: [
651
+ { id: "use", level: "initiative", name: { en: "Use the board" }, members: true },
652
+ { id: "prices", level: "initiative", name: { en: "See prices" } },
653
+ { id: "settings", level: "community", name: { en: "Set up the board" } },
654
+ ],
655
+ fields: {
656
+ "board.price": { name: { en: "Price" }, kind: "currency", currency: "EUR", on: ["task"], permission: "prices" },
657
+ },
658
+ ```
659
+
660
+ `members` says whether a role starts with an initiative permission where nobody
661
+ in the community said otherwise; absent, only the roles the community chooses
662
+ hold it. A page names one permission for every level it renders in, so one
663
+ rendering at both names one declared at both. An endpoint naming a permission
664
+ is read only by those who hold it in the initiative it is read in. Another
665
+ plug-in calling one of your public endpoints for a member is held to that
666
+ member's permission for it, the one it names or `use`; one calling as the
667
+ community, to what the community granted it. A handoff and an ID token carry the ids the person
668
+ holds where the page was opened as `permissions`, so your pages can shape
669
+ themselves the same way.
670
+
579
671
  ## 2. Widgets
580
672
 
581
673
  A widget is a module exporting `render`, typed from the endpoint it draws:
package/dist/client.d.ts CHANGED
@@ -27,9 +27,12 @@ import { PluginApi } from "./plugin-api.generated.js";
27
27
  import type { ActorKind, ItemKind, PluginScope, Scope } from "./contract.js";
28
28
  import type { Actor, ItemRef } from "./define.js";
29
29
  import { type PluginSigningKey } from "./keys.js";
30
+ import { SignIn } from "./sign-in.js";
30
31
  import type { EntitlementStatements } from "./statements.js";
31
32
  export { generatePluginKeys, jwkThumbprint, loadPrivateKey, publicJwks, type PluginSigningKey, type GeneratedPluginKeys, type Jwks, type PublicJwk, } from "./keys.js";
32
33
  export type { PluginApi, PluginApiSchemas } from "./plugin-api.generated.js";
34
+ export { AUTHORIZE_PATH, SignIn, SignInError, type PendingSignIn, type SignedIn, } from "./sign-in.js";
35
+ export type { IdTokenClaims } from "./tokens.js";
33
36
  export { ENTITLEMENT_ISSUER_KEY_ENV, EntitlementStatementError, EntitlementStatements, entitlementMetrics, entitlementMetricsText, type EntitlementMetrics, type EntitlementRefusal, type EntitlementStatementsOptions, } from "./statements.js";
34
37
  export interface InitiativeOptions {
35
38
  /** The deployment's API base, such as `https://initiative.example.com/api/v1`. */
@@ -268,12 +271,22 @@ declare class Tokens {
268
271
  */
269
272
  send(grant: Grant | null, url: string, init: RequestInit): Promise<Response>;
270
273
  private issue;
274
+ /**
275
+ * One token request, authenticating as the plug-in unless the form already
276
+ * carries its own assertion, answered with the response body: an access
277
+ * token, or an {@link InitiativeAuthError} for the endpoint's refusal.
278
+ */
279
+ request(form: Array<[string, string]>): Promise<Record<string, unknown>>;
280
+ /** The form fields that authenticate the plug-in itself (RFC 7523 §2.2). */
281
+ clientAuthentication(): Array<[string, string]>;
271
282
  /** A signed assertion addressed to the token endpoint. */
272
283
  private assertion;
273
284
  }
274
285
  /** Initiative, for one plug-in on one deployment. */
275
286
  export declare class Initiative {
276
287
  private readonly tokens;
288
+ /** Sign in with Initiative, for the plug-in's own address. */
289
+ readonly signIn: SignIn;
277
290
  constructor(options: InitiativeOptions);
278
291
  /**
279
292
  * Every community that has installed the plug-in, following Initiative's
package/dist/client.js CHANGED
@@ -26,7 +26,9 @@
26
26
  import { randomUUID } from "node:crypto";
27
27
  import { PluginApi, pluginApiOperations, } from "./plugin-api.generated.js";
28
28
  import { signJwt } from "./keys.js";
29
+ import { SignIn } from "./sign-in.js";
29
30
  export { generatePluginKeys, jwkThumbprint, loadPrivateKey, publicJwks, } from "./keys.js";
31
+ export { AUTHORIZE_PATH, SignIn, SignInError, } from "./sign-in.js";
30
32
  export { ENTITLEMENT_ISSUER_KEY_ENV, EntitlementStatementError, EntitlementStatements, entitlementMetrics, entitlementMetricsText, } from "./statements.js";
31
33
  const CLIENT_ASSERTION_TYPE = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
32
34
  const JWT_BEARER_GRANT = "urn:ietf:params:oauth:grant-type:jwt-bearer";
@@ -157,7 +159,7 @@ class Tokens {
157
159
  ]);
158
160
  }
159
161
  else {
160
- form.push(["grant_type", "client_credentials"], ["client_assertion_type", CLIENT_ASSERTION_TYPE], ["client_assertion", this.assertion(this.options.publicId, {})]);
162
+ form.push(["grant_type", "client_credentials"], ...this.clientAuthentication());
161
163
  if (grant)
162
164
  form.push(["installation", grant.installation]);
163
165
  }
@@ -168,6 +170,20 @@ class Tokens {
168
170
  if (grant?.level !== undefined)
169
171
  form.push(["level", grant.level]);
170
172
  const issuedAt = this.now();
173
+ const body = await this.request(form);
174
+ const lifetime = typeof body.expires_in === "number" && body.expires_in > 0 ? body.expires_in : 0;
175
+ return {
176
+ token: body.access_token,
177
+ scopes: typeof body.scope === "string" ? body.scope.split(" ").filter(Boolean) : [...(grant?.scopes ?? [])],
178
+ expiresAt: issuedAt + lifetime * 1000,
179
+ };
180
+ }
181
+ /**
182
+ * One token request, authenticating as the plug-in unless the form already
183
+ * carries its own assertion, answered with the response body: an access
184
+ * token, or an {@link InitiativeAuthError} for the endpoint's refusal.
185
+ */
186
+ async request(form) {
171
187
  const response = await this.fetch(this.endpoint, {
172
188
  method: "POST",
173
189
  headers: { "Content-Type": "application/x-www-form-urlencoded", Accept: "application/json" },
@@ -191,12 +207,14 @@ class Tokens {
191
207
  if (typeof body.token_type === "string" && body.token_type.toLowerCase() !== "bearer") {
192
208
  throw new InitiativeAuthError("invalid_response", `unexpected token_type ${body.token_type}`, response.status);
193
209
  }
194
- const lifetime = typeof body.expires_in === "number" && body.expires_in > 0 ? body.expires_in : 0;
195
- return {
196
- token: body.access_token,
197
- scopes: typeof body.scope === "string" ? body.scope.split(" ").filter(Boolean) : [...(grant?.scopes ?? [])],
198
- expiresAt: issuedAt + lifetime * 1000,
199
- };
210
+ return body;
211
+ }
212
+ /** The form fields that authenticate the plug-in itself (RFC 7523 §2.2). */
213
+ clientAuthentication() {
214
+ return [
215
+ ["client_assertion_type", CLIENT_ASSERTION_TYPE],
216
+ ["client_assertion", this.assertion(this.options.publicId, {})],
217
+ ];
200
218
  }
201
219
  /** A signed assertion addressed to the token endpoint. */
202
220
  assertion(subject, extra) {
@@ -215,8 +233,11 @@ class Tokens {
215
233
  /** Initiative, for one plug-in on one deployment. */
216
234
  export class Initiative {
217
235
  tokens;
236
+ /** Sign in with Initiative, for the plug-in's own address. */
237
+ signIn;
218
238
  constructor(options) {
219
239
  this.tokens = new Tokens(options);
240
+ this.signIn = new SignIn(this.tokens, options);
220
241
  }
221
242
  /**
222
243
  * Every community that has installed the plug-in, following Initiative's
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}