@fleetless/contracts 5.3.0-next.1 → 6.0.0-next.1
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 +96 -33
- package/artifacts/openapi.json +2049 -773
- package/artifacts/routes.json +1665 -314
- package/artifacts/schema/accept-team-invite-request.schema.json +13 -7
- package/artifacts/schema/app-auth-config.schema.json +108 -4
- package/artifacts/schema/app-hosted-pages.schema.json +33 -0
- package/artifacts/schema/app-invitation.schema.json +2 -2
- package/artifacts/schema/app-mail-template-list-response.schema.json +4 -3
- package/artifacts/schema/app-mail-template.schema.json +3 -2
- package/artifacts/schema/app-sign-in-methods.schema.json +19 -0
- package/artifacts/schema/app-user-list-response.schema.json +36 -0
- package/artifacts/schema/app-user.schema.json +36 -0
- package/artifacts/schema/audit-query.schema.json +0 -6
- package/artifacts/schema/auth-me-response.schema.json +27 -0
- package/artifacts/schema/auth-ok.schema.json +13 -1
- package/artifacts/schema/client-accept-invitation-request.schema.json +3 -4
- package/artifacts/schema/client-identity.schema.json +13 -1
- package/artifacts/schema/client-login-code-request.schema.json +24 -0
- package/artifacts/schema/client-login-code-verify-request.schema.json +30 -0
- package/artifacts/schema/client-provider-list-response.schema.json +22 -2
- package/artifacts/schema/client-register-request.schema.json +3 -4
- package/artifacts/schema/client-sign-in-result.schema.json +55 -0
- package/artifacts/schema/client-two-factor-disable-request.schema.json +15 -0
- package/artifacts/schema/client-two-factor-setup-confirm-request.schema.json +20 -0
- package/artifacts/schema/client-two-factor-setup-confirm-response.schema.json +49 -0
- package/artifacts/schema/client-two-factor-setup-request.schema.json +12 -0
- package/artifacts/schema/client-two-factor-verify-request.schema.json +25 -0
- package/artifacts/schema/create-app-invitation-request.schema.json +1 -1
- package/artifacts/schema/create-passkey-request.schema.json +25 -0
- package/artifacts/schema/create-passkey-response.schema.json +84 -0
- package/artifacts/schema/developer-passkey.schema.json +56 -0
- package/artifacts/schema/developer-two-factor.schema.json +105 -0
- package/artifacts/schema/fleetless-user-list-response.schema.json +22 -0
- package/artifacts/schema/fleetless-user.schema.json +22 -0
- package/artifacts/schema/invalid-code-details.schema.json +16 -0
- package/artifacts/schema/job-actor.schema.json +1 -15
- package/artifacts/schema/job-run-list-response.schema.json +1 -15
- package/artifacts/schema/job-run.schema.json +1 -15
- package/artifacts/schema/org.schema.json +5 -0
- package/artifacts/schema/patch-org-request.schema.json +5 -3
- package/artifacts/schema/patch-org-response.schema.json +5 -0
- package/artifacts/schema/put-app-auth-look-request.schema.json +22 -0
- package/artifacts/schema/put-app-auth-mcp-request.schema.json +1 -14
- package/artifacts/schema/put-app-auth-sign-in-request.schema.json +39 -0
- package/artifacts/schema/put-app-auth-urls-request.schema.json +31 -4
- package/artifacts/schema/recovery-codes-response.schema.json +20 -0
- package/artifacts/schema/{role-rename-request.schema.json → rename-passkey-request.schema.json} +2 -2
- package/artifacts/schema/role-list-response.schema.json +1 -1
- package/artifacts/schema/role.schema.json +1 -1
- package/artifacts/schema/totp-confirm-request.schema.json +15 -0
- package/artifacts/schema/totp-confirm-response.schema.json +27 -0
- package/artifacts/schema/two-factor-challenge.schema.json +24 -0
- package/artifacts/schema/two-factor-setup-response.schema.json +21 -0
- package/artifacts/schema/webauthn-options-response.schema.json +18 -0
- package/dist/app-users.d.ts +154 -34
- package/dist/app-users.js +177 -45
- package/dist/apps.d.ts +2 -38
- package/dist/apps.js +3 -46
- package/dist/audit.d.ts +0 -1
- package/dist/audit.js +0 -13
- package/dist/client-auth.d.ts +133 -24
- package/dist/client-auth.js +139 -28
- package/dist/config.d.ts +2 -2
- package/dist/errors.d.ts +10 -1
- package/dist/errors.js +34 -34
- package/dist/identity.d.ts +172 -123
- package/dist/identity.js +189 -101
- package/dist/index.d.ts +11 -13
- package/dist/index.js +12 -10
- package/dist/jobs.d.ts +0 -3
- package/dist/jobs.js +0 -16
- package/dist/protocol.d.ts +1 -1
- package/dist/realtime.d.ts +1 -0
- package/dist/rest.d.ts +2 -2
- package/dist/rest.js +17 -28
- package/dist/routes.d.ts +19 -0
- package/dist/routes.js +499 -223
- package/package.json +1 -1
- package/artifacts/schema/developer-login-request.schema.json +0 -19
- package/artifacts/schema/feedback-request.schema.json +0 -34
- package/artifacts/schema/feedback-response.schema.json +0 -27
- package/artifacts/schema/password-reset-confirm.schema.json +0 -19
- package/artifacts/schema/password-reset-request.schema.json +0 -14
- package/artifacts/schema/role-delete-query.schema.json +0 -13
- package/artifacts/schema/role-in-use-details.schema.json +0 -28
- package/artifacts/schema/sign-up-request.schema.json +0 -26
- package/artifacts/schema/sign-up-response.schema.json +0 -127
- package/dist/feedback.d.ts +0 -42
- package/dist/feedback.js +0 -35
package/dist/rest.js
CHANGED
|
@@ -567,23 +567,17 @@ export const jobResponse = z.object({
|
|
|
567
567
|
* There are no compatibility aliases, because an alias here is how a deleted
|
|
568
568
|
* model survives in production while the contract says otherwise.
|
|
569
569
|
*
|
|
570
|
-
*
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
570
|
+
* **Every route that mails a code or a link answers the same for a known and
|
|
571
|
+
* an unknown address** — the portal's identify step, `POST
|
|
572
|
+
* /api/client/login/code`, `POST /api/client/password/reset`. Saying nothing
|
|
573
|
+
* about whether an account exists is not a preference there but the entire
|
|
574
|
+
* point: any status, body or timing difference between the two cases is an
|
|
574
575
|
* account-enumeration oracle. Note *timing* — a route that only sends mail for
|
|
575
|
-
* a real address must not become measurably faster for an unknown one.
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
* console user each need a way to change and to reset a password.
|
|
581
|
-
* `passwordChangeRequest` is shared because the operation is identical; the
|
|
582
|
-
* **prefix** is what says
|
|
583
|
-
* which session is being spent, exactly as it does for `login`. The two *reset*
|
|
584
|
-
* requests are separate shapes rather than one, because the surfaces identify a
|
|
585
|
-
* person differently: a Fleetless user by a globally unique address, an app
|
|
586
|
-
* user by app **and** address.
|
|
576
|
+
* a real address must not become measurably faster for an unknown one.
|
|
577
|
+
*
|
|
578
|
+
* **Only app users hold a password.** Fleetless users sign in by emailed code
|
|
579
|
+
* or passkey, so the password change and reset routes are the app user's
|
|
580
|
+
* alone, under `/api/client`.
|
|
587
581
|
*
|
|
588
582
|
* **A password change answers with fresh `sessionTokens`, not `204`.** The
|
|
589
583
|
* promise is that the session which made the change survives while every other
|
|
@@ -611,20 +605,15 @@ export const jobResponse = z.object({
|
|
|
611
605
|
*
|
|
612
606
|
* | purpose | URL |
|
|
613
607
|
* |---|---|
|
|
614
|
-
* | password reset, Fleetless user | `{portal}/reset-password/{token}` |
|
|
615
608
|
* | team invitation | `{portal}/accept-invite/{token}` |
|
|
616
609
|
*
|
|
617
|
-
* **An app user's links
|
|
618
|
-
*
|
|
619
|
-
*
|
|
620
|
-
*
|
|
621
|
-
*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
* The paragraph this replaces said an app-user reset *"is a feature to design,
|
|
626
|
-
* not a row to restore"*. It was designed; the answer was that the row belongs
|
|
627
|
-
* to the developer and not to this table.
|
|
610
|
+
* **An app user's links point into the developer's own app** where it has
|
|
611
|
+
* configured one — the template in `appAuthConfig.invite_url`, `verify_url` or
|
|
612
|
+
* `reset_url`, with the token substituted for `{token}`. That is why those
|
|
613
|
+
* fields are validated as templates rather than as URLs. Where the app has
|
|
614
|
+
* configured none, the link points at the Fleetless-hosted page the cloud
|
|
615
|
+
* reports in `appAuthConfig.hosted_pages` (`{portal}/app/<identifier>/…`), so
|
|
616
|
+
* no mail is refused for a missing URL.
|
|
628
617
|
*
|
|
629
618
|
* The strings themselves live server-side, read by the
|
|
630
619
|
* route that serves each page AND by the builder that mails it — one constant,
|
package/dist/routes.d.ts
CHANGED
|
@@ -92,4 +92,23 @@ export declare const ROUTE_SECTIONS: readonly {
|
|
|
92
92
|
}[];
|
|
93
93
|
/** The routes that verify a credential inside the handler; `auth: 'in_handler'` is refused elsewhere. */
|
|
94
94
|
export declare const IN_HANDLER_ROUTES: readonly string[];
|
|
95
|
+
/**
|
|
96
|
+
* **The steps of a developer sign-in, written once for both portal flows.**
|
|
97
|
+
*
|
|
98
|
+
* The console's own OAuth flow (`/console/oauth`) and the central MCP
|
|
99
|
+
* endpoint's (`/mcp/oauth`) sign the same people in the same way: an emailed
|
|
100
|
+
* code or a passkey, then the second factor where the person has one or the
|
|
101
|
+
* organisation requires one. Two hand-written copies of thirteen rows would
|
|
102
|
+
* drift; this returns them for a prefix, and `ROUTES` spreads both.
|
|
103
|
+
*
|
|
104
|
+
* Every step is a page the auth portal serves to itself: `audience:
|
|
105
|
+
* 'internal'`, no request schema — the handlers read form fields by hand — and
|
|
106
|
+
* HTML for a browser form post, JSON for a JSON caller. Every step after
|
|
107
|
+
* `identify` needs the browser-proof cookie set there, so a step posted from
|
|
108
|
+
* another browser renders the `wrong_browser` page. The interaction's ten
|
|
109
|
+
* minutes cover every step; only when the last one is done is anything
|
|
110
|
+
* minted. **For `/mcp/oauth`, "done" means the consent step**, as the
|
|
111
|
+
* password did before.
|
|
112
|
+
*/
|
|
113
|
+
export declare function developerSignInRoutes(prefix: '/console/oauth' | '/mcp/oauth'): RouteEntry[];
|
|
95
114
|
export declare const ROUTES: readonly RouteEntry[];
|