@structured-id/ui-core 1.2.0 → 1.3.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.
Files changed (101) hide show
  1. package/README.md +9 -5
  2. package/dist/browser-vp/index.d.cts +0 -11
  3. package/dist/browser-vp/index.d.ts +0 -11
  4. package/dist/index.cjs +13721 -9514
  5. package/dist/index.d.cts +4362 -2375
  6. package/dist/index.d.ts +4362 -2375
  7. package/dist/index.js +13937 -9730
  8. package/package.json +3 -3
  9. package/src/browser-vp/crypto.ts +0 -1
  10. package/src/browser-vp/index.ts +0 -2
  11. package/src/browser-vp/prf.ts +0 -2
  12. package/src/browser-vp/storage.ts +0 -2
  13. package/src/browser-vp/types.ts +0 -2
  14. package/src/browser-vp/vp.ts +0 -2
  15. package/src/composables/index.ts +6 -1
  16. package/src/composables/useAccountTransport.test.ts +121 -0
  17. package/src/composables/useAccountTransport.ts +69 -0
  18. package/src/composables/useBffAuth.ts +44 -34
  19. package/src/generated/google/api/httpbody.ts +159 -0
  20. package/src/generated/google/protobuf/any.ts +326 -0
  21. package/src/generated/google/rpc/error_details.ts +1386 -0
  22. package/src/generated/google/rpc/status.ts +127 -0
  23. package/src/generated/sid/v1/account/account.ts +1 -1
  24. package/src/generated/sid/v1/admin/admin.client.ts +15 -12
  25. package/src/generated/sid/v1/admin/admin.ts +24 -89
  26. package/src/generated/sid/v1/admin/enrollment.client.ts +24 -12
  27. package/src/generated/sid/v1/admin/enrollment.ts +65 -3
  28. package/src/generated/sid/v1/admin/events.client.ts +8 -8
  29. package/src/generated/sid/v1/admin/flow.ts +1 -1
  30. package/src/generated/sid/v1/admin/keys.ts +1 -1
  31. package/src/generated/sid/v1/admin/notifications.client.ts +12 -6
  32. package/src/generated/sid/v1/admin/notifications.ts +11 -70
  33. package/src/generated/sid/v1/admin/operations.ts +20 -35
  34. package/src/generated/sid/v1/admin/organizations.client.ts +2 -2
  35. package/src/generated/sid/v1/admin/organizations.ts +15 -32
  36. package/src/generated/sid/v1/admin/provisioning.client.ts +232 -0
  37. package/src/generated/sid/v1/admin/provisioning.ts +1383 -0
  38. package/src/generated/sid/v1/admin/scopes.ts +1 -1
  39. package/src/generated/sid/v1/admin/security.client.ts +22 -24
  40. package/src/generated/sid/v1/admin/security.ts +13 -22
  41. package/src/generated/sid/v1/admin/settings.client.ts +29 -18
  42. package/src/generated/sid/v1/admin/settings.ts +2 -82
  43. package/src/generated/sid/v1/attestation/attestation.client.ts +6 -6
  44. package/src/generated/sid/v1/attestation/attestation.ts +8 -8
  45. package/src/generated/sid/v1/authn/auth.client.ts +101 -58
  46. package/src/generated/sid/v1/authn/auth.ts +842 -414
  47. package/src/generated/sid/v1/authn/flows.ts +0 -12
  48. package/src/generated/sid/v1/authn/issuer.client.ts +489 -0
  49. package/src/generated/sid/v1/authn/issuer.ts +1600 -0
  50. package/src/generated/sid/v1/authn/password_history.client.ts +57 -0
  51. package/src/generated/sid/v1/authn/password_history.ts +578 -0
  52. package/src/generated/sid/v1/authn/system_integration.client.ts +73 -0
  53. package/src/generated/sid/v1/authn/system_integration.ts +218 -0
  54. package/src/generated/sid/v1/authz/authz.ts +1498 -317
  55. package/src/generated/sid/v1/authz/forward_auth.client.ts +97 -0
  56. package/src/generated/sid/v1/authz/forward_auth.ts +79 -0
  57. package/src/generated/sid/v1/authz/governance.client.ts +2 -2
  58. package/src/generated/sid/v1/authz/governance.ts +61 -4
  59. package/src/generated/sid/v1/common/errors.ts +532 -6
  60. package/src/generated/sid/v1/events/event_stream.client.ts +2 -2
  61. package/src/generated/sid/v1/events/event_stream.ts +2 -1
  62. package/src/generated/sid/v1/identity/identity.ts +98 -58
  63. package/src/generated/sid/v1/ids/ids.ts +395 -0
  64. package/src/generated/sid/v1/machine/machine_user.ts +0 -36
  65. package/src/generated/sid/v1/machine/pat.client.ts +2 -19
  66. package/src/generated/sid/v1/machine/pat.ts +1 -186
  67. package/src/generated/sid/v1/projects/projects.client.ts +137 -19
  68. package/src/generated/sid/v1/projects/projects.ts +2105 -405
  69. package/src/generated/sid/v1/scim/scim.client.ts +248 -2
  70. package/src/generated/sid/v1/scim/scim.ts +153 -14
  71. package/src/generated/sid/v1/test/test.ts +1 -1
  72. package/src/i18n/index.ts +0 -11
  73. package/src/index.ts +36 -2
  74. package/src/package-exports.test.ts +18 -0
  75. package/src/profile/components/SidLoginForm.vue +5 -2
  76. package/src/profile/components/SidRegistrationForm.test.ts +58 -1
  77. package/src/profile/components/SidRegistrationForm.vue +110 -12
  78. package/src/profile/components/index.ts +4 -0
  79. package/src/profile/composables/index.ts +2 -1
  80. package/src/profile/composables/useAccountApi.ts +20 -7
  81. package/src/profile/composables/useAuth.test.ts +453 -0
  82. package/src/profile/composables/useAuth.ts +414 -0
  83. package/src/profile/composables/useAuthApi.opaque.test.ts +18 -0
  84. package/src/profile/composables/useAuthApi.ts +188 -20
  85. package/src/profile/composables/useEnrollmentApi.test.ts +33 -0
  86. package/src/profile/composables/useEnrollmentApi.ts +26 -0
  87. package/src/profile/composables/useIdentityApi.ts +17 -7
  88. package/src/profile/composables/useLoginSuccess.test.ts +97 -3
  89. package/src/profile/composables/useLoginSuccess.ts +80 -22
  90. package/src/profile/composables/useSecurityLevel.test.ts +10 -3
  91. package/src/profile/composables/useSecurityLevel.ts +12 -3
  92. package/src/quasar/SidPrincipalInput.vue +4 -7
  93. package/src/utils/normalizePrincipal.test.ts +19 -5
  94. package/src/utils/normalizePrincipal.ts +7 -9
  95. package/src/utils/rpcRefusal.test.ts +151 -0
  96. package/src/utils/rpcRefusal.ts +252 -0
  97. package/src/utils/validators.test.ts +9 -0
  98. package/src/utils/validators.ts +14 -2
  99. package/src/composables/useAuth.ts +0 -40
  100. package/src/profile/composables/useOpaqueAuth.test.ts +0 -290
  101. package/src/profile/composables/useOpaqueAuth.ts +0 -191
@@ -342,10 +342,6 @@ export interface StepType {
342
342
  * @generated from protobuf field: string category = 4
343
343
  */
344
344
  category: string; // "authenticator", "identity", "verification"
345
- /**
346
- * @generated from protobuf field: string tier = 5
347
- */
348
- tier: string; // "ce" or "ee"
349
345
  /**
350
346
  * @generated from protobuf field: bool configurable = 6
351
347
  */
@@ -1944,7 +1940,6 @@ class StepType$Type extends MessageType<StepType> {
1944
1940
  { no: 2, name: "display_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
1945
1941
  { no: 3, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
1946
1942
  { no: 4, name: "category", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
1947
- { no: 5, name: "tier", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
1948
1943
  { no: 6, name: "configurable", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1949
1944
  ]);
1950
1945
  }
@@ -1954,7 +1949,6 @@ class StepType$Type extends MessageType<StepType> {
1954
1949
  message.displayName = "";
1955
1950
  message.description = "";
1956
1951
  message.category = "";
1957
- message.tier = "";
1958
1952
  message.configurable = false;
1959
1953
  if (value !== undefined)
1960
1954
  reflectionMergePartial<StepType>(this, message, value);
@@ -1977,9 +1971,6 @@ class StepType$Type extends MessageType<StepType> {
1977
1971
  case /* string category */ 4:
1978
1972
  message.category = reader.string();
1979
1973
  break;
1980
- case /* string tier */ 5:
1981
- message.tier = reader.string();
1982
- break;
1983
1974
  case /* bool configurable */ 6:
1984
1975
  message.configurable = reader.bool();
1985
1976
  break;
@@ -2007,9 +1998,6 @@ class StepType$Type extends MessageType<StepType> {
2007
1998
  /* string category = 4; */
2008
1999
  if (message.category !== "")
2009
2000
  writer.tag(4, WireType.LengthDelimited).string(message.category);
2010
- /* string tier = 5; */
2011
- if (message.tier !== "")
2012
- writer.tag(5, WireType.LengthDelimited).string(message.tier);
2013
2001
  /* bool configurable = 6; */
2014
2002
  if (message.configurable !== false)
2015
2003
  writer.tag(6, WireType.Varint).bool(message.configurable);
@@ -0,0 +1,489 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter client_generic,generate_dependencies
2
+ // @generated from protobuf file "sid/v1/authn/issuer.proto" (package "sid.v1.authn", syntax proto3)
3
+ // tslint:disable
4
+ import { OidcIssuerService } from "./issuer";
5
+ import type { ProtectedResourceTarget } from "./issuer";
6
+ import type { GetProtectedResourceRequest } from "./issuer";
7
+ import type { OidcIssuer } from "./issuer";
8
+ import type { GetOidcIssuerRequest } from "./issuer";
9
+ import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
10
+ import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
11
+ import { OidcProviderService } from "./issuer";
12
+ import type { RegistrationRequest } from "./issuer";
13
+ import type { EndSessionRequest } from "./issuer";
14
+ import type { ProtocolRequest } from "./issuer";
15
+ import type { HttpBody } from "../../../google/api/httpbody";
16
+ import type { OAuth2AuthorizeRequest } from "./auth";
17
+ import type { UserInfo } from "./issuer";
18
+ import type { JsonWebKeySet } from "./issuer";
19
+ import { stackIntercept } from "@protobuf-ts/runtime-rpc";
20
+ import type { ProviderMetadata } from "./issuer";
21
+ import type { IssuerHandleRequest } from "./issuer";
22
+ import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
23
+ import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
24
+ /**
25
+ * OidcProviderService publishes one issuer's metadata and signing keys to its
26
+ * relying parties. Every document belongs to the issuer the handle names; an
27
+ * unknown handle is NOT_FOUND with ErrorInfo reason OIDC_ISSUER_NOT_FOUND and
28
+ * never falls back to another issuer. There is no issuer-less document.
29
+ *
30
+ * @generated from protobuf service sid.v1.authn.OidcProviderService
31
+ */
32
+ export interface IOidcProviderServiceClient {
33
+ /**
34
+ * The issuer's metadata (OpenID Connect Discovery 1.0 §3–4, RFC 8414 §2–3).
35
+ * One document answers both discovery algorithms: the OIDC location under
36
+ * the issuer path and the RFC 8414 well-known location with the issuer path
37
+ * appended.
38
+ *
39
+ * @generated from protobuf rpc: GetProviderMetadata
40
+ */
41
+ getProviderMetadata(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, ProviderMetadata>;
42
+ /**
43
+ * The issuer's JSON Web Key Set (RFC 7517 §5): the public keys that verify
44
+ * its tokens. The response metadata carries `cache-control` for HTTP caches.
45
+ *
46
+ * @generated from protobuf rpc: GetJwks
47
+ */
48
+ getJwks(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, JsonWebKeySet>;
49
+ /**
50
+ * UserInfo (OIDC Core 1.0 §5.3) over GET. The access token travels in the
51
+ * `authorization` metadata, `Bearer` (RFC 6750 §2.1) or `DPoP` with a proof
52
+ * in the `dpop` metadata (RFC 9449 §7.1); only tokens this issuer signed are
53
+ * accepted. A refused token is UNAUTHENTICATED with a `www-authenticate`
54
+ * response metadata challenge (RFC 6750 §3, RFC 9449 §7.1). GET and POST
55
+ * are separate RPCs because a DPoP proof names the request method.
56
+ *
57
+ * @generated from protobuf rpc: GetUserInfo
58
+ */
59
+ getUserInfo(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, UserInfo>;
60
+ /**
61
+ * UserInfo over POST (OIDC Core 1.0 §5.3.1); the same answer as GetUserInfo.
62
+ *
63
+ * @generated from protobuf rpc: PostUserInfo
64
+ */
65
+ postUserInfo(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, UserInfo>;
66
+ /**
67
+ * The browser authorization endpoint (RFC 6749 §3.1) over GET, the query
68
+ * parameters bound to the request fields. The answer is an HTTP redirect
69
+ * (`x-http-code` 303 and `location` response metadata, RFC 9700 §4.11): to
70
+ * the client's registered redirect URI with `code` or `error`, `state` and
71
+ * `iss` (RFC 9207 §2), or, when the user must sign in first, to the sign-in
72
+ * page with this request to return to. A request whose client or exact
73
+ * redirect URI is not established is answered with a page and never
74
+ * redirected (RFC 6749 §4.1.2.1). The signed-in user's token, when a
75
+ * gateway holds one, travels in the `authorization` metadata.
76
+ *
77
+ * @generated from protobuf rpc: GetAuthorize
78
+ */
79
+ getAuthorize(input: OAuth2AuthorizeRequest, options?: RpcOptions): UnaryCall<OAuth2AuthorizeRequest, HttpBody>;
80
+ /**
81
+ * The authorization endpoint over POST with a form body (OIDC Core 1.0
82
+ * §3.1.2.1); the same answer as GetAuthorize. Parameters it does not know
83
+ * are ignored (RFC 6749 §3.1).
84
+ *
85
+ * @generated from protobuf rpc: PostAuthorize
86
+ */
87
+ postAuthorize(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
88
+ /**
89
+ * RP-Initiated Logout (OIDC RP-Initiated Logout 1.0 §2) over GET. The
90
+ * browser's IdP session is read from its `__Host-sid_session` cookie
91
+ * (`cookie` metadata). A valid `id_token_hint` of this issuer ends the
92
+ * application session it names; when that session reuses the browser's
93
+ * IdP session, single sign-on ends too and the answer clears the cookie.
94
+ * Otherwise ending the browser's IdP session needs the user's confirmation
95
+ * (§2): the answer is a page with a form that confirms it by POST. A
96
+ * `post_logout_redirect_uri` is followed only for a valid `id_token_hint`
97
+ * whose client registered exactly that URI (§3): the answer is then a 303
98
+ * to it with `state`, or, while the browser's IdP session remains, the
99
+ * confirmation page, which returns there after either choice. Otherwise the
100
+ * answer is a page.
101
+ *
102
+ * @generated from protobuf rpc: GetEndSession
103
+ */
104
+ getEndSession(input: EndSessionRequest, options?: RpcOptions): UnaryCall<EndSessionRequest, HttpBody>;
105
+ /**
106
+ * RP-Initiated Logout over POST with a form body: the same parameters as
107
+ * GetEndSession, plus `confirmation`, the one-time value of the
108
+ * confirmation page's form, which ends the browser's IdP session it was
109
+ * issued for and returns to the post-logout redirect URI that page was
110
+ * shown for, if any.
111
+ *
112
+ * @generated from protobuf rpc: PostEndSession
113
+ */
114
+ postEndSession(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
115
+ // The endpoints below are the HTTP form of AuthService's OAuth RPCs, with
116
+ // the same logic: the request body is the `application/x-www-form-urlencoded`
117
+ // form the RFC defines, the answer is the RFC's JSON with its HTTP status in
118
+ // the `x-http-code` response metadata and its headers (`cache-control`,
119
+ // `pragma`, `www-authenticate`) as response metadata. A refusal is an OK
120
+ // gRPC call carrying the RFC error body; typed gRPC clients use AuthService.
121
+ // HTTP Basic client authentication travels in the `authorization` metadata,
122
+ // a DPoP proof in `dpop`.
123
+
124
+ /**
125
+ * Token endpoint (RFC 6749 §3.2): every grant, including the device_code
126
+ * grant (RFC 8628 §3.4). Success is RFC 6749 §5.1 JSON with
127
+ * `cache-control: no-store`; a refusal is RFC 6749 §5.2 or RFC 8628 §3.5
128
+ * JSON, 401 with a `www-authenticate` challenge for `invalid_client` when
129
+ * the client used HTTP Basic, 400 otherwise.
130
+ *
131
+ * @generated from protobuf rpc: Token
132
+ */
133
+ token(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
134
+ /**
135
+ * Token introspection (RFC 7662 §2): RFC 7662 §2.2 JSON, `{"active":false}`
136
+ * for any token this issuer does not vouch for.
137
+ *
138
+ * @generated from protobuf rpc: Introspect
139
+ */
140
+ introspect(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
141
+ /**
142
+ * Token revocation (RFC 7009 §2): 200 with an empty body, also for a token
143
+ * that is unknown or already revoked (RFC 7009 §2.2).
144
+ *
145
+ * @generated from protobuf rpc: Revoke
146
+ */
147
+ revoke(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
148
+ /**
149
+ * Device authorization (RFC 8628 §3.1): RFC 8628 §3.2 JSON; a refusal is
150
+ * RFC 6749 §5.2 JSON as at the token endpoint.
151
+ *
152
+ * @generated from protobuf rpc: DeviceAuthorization
153
+ */
154
+ deviceAuthorization(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
155
+ // The registration endpoints below are the HTTP form of ProjectService's
156
+ // dynamic registration RPCs, with the same logic. Bodies are
157
+ // `application/json` client metadata (RFC 7591 §2); the initial access
158
+ // token or registration access token travels as a bearer token in the
159
+ // `authorization` metadata. A refusal is an OK gRPC call carrying the RFC
160
+ // error body with its HTTP status in `x-http-code`.
161
+
162
+ /**
163
+ * Client registration (RFC 7591 §3.1). Success is 201 with every
164
+ * registered metadata value, the credentials and the management location
165
+ * (RFC 7591 §3.2.1, RFC 7592 §3); invalid metadata is 400 with
166
+ * `invalid_client_metadata` or `invalid_redirect_uri` (RFC 7591 §3.2.2); a
167
+ * missing or invalid initial access token is 401 (RFC 6750 §3.1).
168
+ *
169
+ * @generated from protobuf rpc: Register
170
+ */
171
+ register(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody>;
172
+ /**
173
+ * Read a registration (RFC 7592 §2.1): the client's current metadata as at
174
+ * registration, without its secret. An invalid registration access token,
175
+ * or a client this issuer does not have, is 401 (RFC 7592 §2.1).
176
+ *
177
+ * @generated from protobuf rpc: ReadRegistration
178
+ */
179
+ readRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody>;
180
+ /**
181
+ * Update a registration (RFC 7592 §2.2): the body replaces the client's
182
+ * metadata and is validated as a registration; a refused update changes
183
+ * nothing.
184
+ *
185
+ * @generated from protobuf rpc: UpdateRegistration
186
+ */
187
+ updateRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody>;
188
+ /**
189
+ * Delete a registration (RFC 7592 §2.3): 204 with no body.
190
+ *
191
+ * @generated from protobuf rpc: DeleteRegistration
192
+ */
193
+ deleteRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody>;
194
+ }
195
+ /**
196
+ * OidcProviderService publishes one issuer's metadata and signing keys to its
197
+ * relying parties. Every document belongs to the issuer the handle names; an
198
+ * unknown handle is NOT_FOUND with ErrorInfo reason OIDC_ISSUER_NOT_FOUND and
199
+ * never falls back to another issuer. There is no issuer-less document.
200
+ *
201
+ * @generated from protobuf service sid.v1.authn.OidcProviderService
202
+ */
203
+ export class OidcProviderServiceClient implements IOidcProviderServiceClient, ServiceInfo {
204
+ typeName = OidcProviderService.typeName;
205
+ methods = OidcProviderService.methods;
206
+ options = OidcProviderService.options;
207
+ constructor(private readonly _transport: RpcTransport) {
208
+ }
209
+ /**
210
+ * The issuer's metadata (OpenID Connect Discovery 1.0 §3–4, RFC 8414 §2–3).
211
+ * One document answers both discovery algorithms: the OIDC location under
212
+ * the issuer path and the RFC 8414 well-known location with the issuer path
213
+ * appended.
214
+ *
215
+ * @generated from protobuf rpc: GetProviderMetadata
216
+ */
217
+ getProviderMetadata(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, ProviderMetadata> {
218
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
219
+ return stackIntercept<IssuerHandleRequest, ProviderMetadata>("unary", this._transport, method, opt, input);
220
+ }
221
+ /**
222
+ * The issuer's JSON Web Key Set (RFC 7517 §5): the public keys that verify
223
+ * its tokens. The response metadata carries `cache-control` for HTTP caches.
224
+ *
225
+ * @generated from protobuf rpc: GetJwks
226
+ */
227
+ getJwks(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, JsonWebKeySet> {
228
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
229
+ return stackIntercept<IssuerHandleRequest, JsonWebKeySet>("unary", this._transport, method, opt, input);
230
+ }
231
+ /**
232
+ * UserInfo (OIDC Core 1.0 §5.3) over GET. The access token travels in the
233
+ * `authorization` metadata, `Bearer` (RFC 6750 §2.1) or `DPoP` with a proof
234
+ * in the `dpop` metadata (RFC 9449 §7.1); only tokens this issuer signed are
235
+ * accepted. A refused token is UNAUTHENTICATED with a `www-authenticate`
236
+ * response metadata challenge (RFC 6750 §3, RFC 9449 §7.1). GET and POST
237
+ * are separate RPCs because a DPoP proof names the request method.
238
+ *
239
+ * @generated from protobuf rpc: GetUserInfo
240
+ */
241
+ getUserInfo(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, UserInfo> {
242
+ const method = this.methods[2], opt = this._transport.mergeOptions(options);
243
+ return stackIntercept<IssuerHandleRequest, UserInfo>("unary", this._transport, method, opt, input);
244
+ }
245
+ /**
246
+ * UserInfo over POST (OIDC Core 1.0 §5.3.1); the same answer as GetUserInfo.
247
+ *
248
+ * @generated from protobuf rpc: PostUserInfo
249
+ */
250
+ postUserInfo(input: IssuerHandleRequest, options?: RpcOptions): UnaryCall<IssuerHandleRequest, UserInfo> {
251
+ const method = this.methods[3], opt = this._transport.mergeOptions(options);
252
+ return stackIntercept<IssuerHandleRequest, UserInfo>("unary", this._transport, method, opt, input);
253
+ }
254
+ /**
255
+ * The browser authorization endpoint (RFC 6749 §3.1) over GET, the query
256
+ * parameters bound to the request fields. The answer is an HTTP redirect
257
+ * (`x-http-code` 303 and `location` response metadata, RFC 9700 §4.11): to
258
+ * the client's registered redirect URI with `code` or `error`, `state` and
259
+ * `iss` (RFC 9207 §2), or, when the user must sign in first, to the sign-in
260
+ * page with this request to return to. A request whose client or exact
261
+ * redirect URI is not established is answered with a page and never
262
+ * redirected (RFC 6749 §4.1.2.1). The signed-in user's token, when a
263
+ * gateway holds one, travels in the `authorization` metadata.
264
+ *
265
+ * @generated from protobuf rpc: GetAuthorize
266
+ */
267
+ getAuthorize(input: OAuth2AuthorizeRequest, options?: RpcOptions): UnaryCall<OAuth2AuthorizeRequest, HttpBody> {
268
+ const method = this.methods[4], opt = this._transport.mergeOptions(options);
269
+ return stackIntercept<OAuth2AuthorizeRequest, HttpBody>("unary", this._transport, method, opt, input);
270
+ }
271
+ /**
272
+ * The authorization endpoint over POST with a form body (OIDC Core 1.0
273
+ * §3.1.2.1); the same answer as GetAuthorize. Parameters it does not know
274
+ * are ignored (RFC 6749 §3.1).
275
+ *
276
+ * @generated from protobuf rpc: PostAuthorize
277
+ */
278
+ postAuthorize(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
279
+ const method = this.methods[5], opt = this._transport.mergeOptions(options);
280
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
281
+ }
282
+ /**
283
+ * RP-Initiated Logout (OIDC RP-Initiated Logout 1.0 §2) over GET. The
284
+ * browser's IdP session is read from its `__Host-sid_session` cookie
285
+ * (`cookie` metadata). A valid `id_token_hint` of this issuer ends the
286
+ * application session it names; when that session reuses the browser's
287
+ * IdP session, single sign-on ends too and the answer clears the cookie.
288
+ * Otherwise ending the browser's IdP session needs the user's confirmation
289
+ * (§2): the answer is a page with a form that confirms it by POST. A
290
+ * `post_logout_redirect_uri` is followed only for a valid `id_token_hint`
291
+ * whose client registered exactly that URI (§3): the answer is then a 303
292
+ * to it with `state`, or, while the browser's IdP session remains, the
293
+ * confirmation page, which returns there after either choice. Otherwise the
294
+ * answer is a page.
295
+ *
296
+ * @generated from protobuf rpc: GetEndSession
297
+ */
298
+ getEndSession(input: EndSessionRequest, options?: RpcOptions): UnaryCall<EndSessionRequest, HttpBody> {
299
+ const method = this.methods[6], opt = this._transport.mergeOptions(options);
300
+ return stackIntercept<EndSessionRequest, HttpBody>("unary", this._transport, method, opt, input);
301
+ }
302
+ /**
303
+ * RP-Initiated Logout over POST with a form body: the same parameters as
304
+ * GetEndSession, plus `confirmation`, the one-time value of the
305
+ * confirmation page's form, which ends the browser's IdP session it was
306
+ * issued for and returns to the post-logout redirect URI that page was
307
+ * shown for, if any.
308
+ *
309
+ * @generated from protobuf rpc: PostEndSession
310
+ */
311
+ postEndSession(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
312
+ const method = this.methods[7], opt = this._transport.mergeOptions(options);
313
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
314
+ }
315
+ // The endpoints below are the HTTP form of AuthService's OAuth RPCs, with
316
+ // the same logic: the request body is the `application/x-www-form-urlencoded`
317
+ // form the RFC defines, the answer is the RFC's JSON with its HTTP status in
318
+ // the `x-http-code` response metadata and its headers (`cache-control`,
319
+ // `pragma`, `www-authenticate`) as response metadata. A refusal is an OK
320
+ // gRPC call carrying the RFC error body; typed gRPC clients use AuthService.
321
+ // HTTP Basic client authentication travels in the `authorization` metadata,
322
+ // a DPoP proof in `dpop`.
323
+
324
+ /**
325
+ * Token endpoint (RFC 6749 §3.2): every grant, including the device_code
326
+ * grant (RFC 8628 §3.4). Success is RFC 6749 §5.1 JSON with
327
+ * `cache-control: no-store`; a refusal is RFC 6749 §5.2 or RFC 8628 §3.5
328
+ * JSON, 401 with a `www-authenticate` challenge for `invalid_client` when
329
+ * the client used HTTP Basic, 400 otherwise.
330
+ *
331
+ * @generated from protobuf rpc: Token
332
+ */
333
+ token(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
334
+ const method = this.methods[8], opt = this._transport.mergeOptions(options);
335
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
336
+ }
337
+ /**
338
+ * Token introspection (RFC 7662 §2): RFC 7662 §2.2 JSON, `{"active":false}`
339
+ * for any token this issuer does not vouch for.
340
+ *
341
+ * @generated from protobuf rpc: Introspect
342
+ */
343
+ introspect(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
344
+ const method = this.methods[9], opt = this._transport.mergeOptions(options);
345
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
346
+ }
347
+ /**
348
+ * Token revocation (RFC 7009 §2): 200 with an empty body, also for a token
349
+ * that is unknown or already revoked (RFC 7009 §2.2).
350
+ *
351
+ * @generated from protobuf rpc: Revoke
352
+ */
353
+ revoke(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
354
+ const method = this.methods[10], opt = this._transport.mergeOptions(options);
355
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
356
+ }
357
+ /**
358
+ * Device authorization (RFC 8628 §3.1): RFC 8628 §3.2 JSON; a refusal is
359
+ * RFC 6749 §5.2 JSON as at the token endpoint.
360
+ *
361
+ * @generated from protobuf rpc: DeviceAuthorization
362
+ */
363
+ deviceAuthorization(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
364
+ const method = this.methods[11], opt = this._transport.mergeOptions(options);
365
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
366
+ }
367
+ // The registration endpoints below are the HTTP form of ProjectService's
368
+ // dynamic registration RPCs, with the same logic. Bodies are
369
+ // `application/json` client metadata (RFC 7591 §2); the initial access
370
+ // token or registration access token travels as a bearer token in the
371
+ // `authorization` metadata. A refusal is an OK gRPC call carrying the RFC
372
+ // error body with its HTTP status in `x-http-code`.
373
+
374
+ /**
375
+ * Client registration (RFC 7591 §3.1). Success is 201 with every
376
+ * registered metadata value, the credentials and the management location
377
+ * (RFC 7591 §3.2.1, RFC 7592 §3); invalid metadata is 400 with
378
+ * `invalid_client_metadata` or `invalid_redirect_uri` (RFC 7591 §3.2.2); a
379
+ * missing or invalid initial access token is 401 (RFC 6750 §3.1).
380
+ *
381
+ * @generated from protobuf rpc: Register
382
+ */
383
+ register(input: ProtocolRequest, options?: RpcOptions): UnaryCall<ProtocolRequest, HttpBody> {
384
+ const method = this.methods[12], opt = this._transport.mergeOptions(options);
385
+ return stackIntercept<ProtocolRequest, HttpBody>("unary", this._transport, method, opt, input);
386
+ }
387
+ /**
388
+ * Read a registration (RFC 7592 §2.1): the client's current metadata as at
389
+ * registration, without its secret. An invalid registration access token,
390
+ * or a client this issuer does not have, is 401 (RFC 7592 §2.1).
391
+ *
392
+ * @generated from protobuf rpc: ReadRegistration
393
+ */
394
+ readRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody> {
395
+ const method = this.methods[13], opt = this._transport.mergeOptions(options);
396
+ return stackIntercept<RegistrationRequest, HttpBody>("unary", this._transport, method, opt, input);
397
+ }
398
+ /**
399
+ * Update a registration (RFC 7592 §2.2): the body replaces the client's
400
+ * metadata and is validated as a registration; a refused update changes
401
+ * nothing.
402
+ *
403
+ * @generated from protobuf rpc: UpdateRegistration
404
+ */
405
+ updateRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody> {
406
+ const method = this.methods[14], opt = this._transport.mergeOptions(options);
407
+ return stackIntercept<RegistrationRequest, HttpBody>("unary", this._transport, method, opt, input);
408
+ }
409
+ /**
410
+ * Delete a registration (RFC 7592 §2.3): 204 with no body.
411
+ *
412
+ * @generated from protobuf rpc: DeleteRegistration
413
+ */
414
+ deleteRegistration(input: RegistrationRequest, options?: RpcOptions): UnaryCall<RegistrationRequest, HttpBody> {
415
+ const method = this.methods[15], opt = this._transport.mergeOptions(options);
416
+ return stackIntercept<RegistrationRequest, HttpBody>("unary", this._transport, method, opt, input);
417
+ }
418
+ }
419
+ /**
420
+ * OidcIssuerService lets services that verify an issuer's tokens resolve the
421
+ * issuer and its keys by handle, and the registered resource a token must be
422
+ * issued for.
423
+ *
424
+ * Internal only, no HTTP annotation: relying parties use OidcProviderService.
425
+ *
426
+ * @generated from protobuf service sid.v1.authn.OidcIssuerService
427
+ */
428
+ export interface IOidcIssuerServiceClient {
429
+ /**
430
+ * Look up an issuer by handle. An unknown handle is NOT_FOUND with
431
+ * ErrorInfo reason OIDC_ISSUER_NOT_FOUND and a ResourceInfo naming the
432
+ * handle; the caller refuses the request and never falls back to another
433
+ * issuer.
434
+ *
435
+ * @generated from protobuf rpc: GetOidcIssuer
436
+ */
437
+ getOidcIssuer(input: GetOidcIssuerRequest, options?: RpcOptions): UnaryCall<GetOidcIssuerRequest, OidcIssuer>;
438
+ /**
439
+ * Resolve the protected resource a route of the ingress configuration names
440
+ * before a token is accepted for it. The resource must be registered under
441
+ * this issuer: an unknown issuer or indicator is NOT_FOUND with ErrorInfo
442
+ * reason RESOURCE_NOT_FOUND and a ResourceInfo naming the indicator. The
443
+ * caller refuses the route and never falls back to another target.
444
+ *
445
+ * @generated from protobuf rpc: GetProtectedResource
446
+ */
447
+ getProtectedResource(input: GetProtectedResourceRequest, options?: RpcOptions): UnaryCall<GetProtectedResourceRequest, ProtectedResourceTarget>;
448
+ }
449
+ /**
450
+ * OidcIssuerService lets services that verify an issuer's tokens resolve the
451
+ * issuer and its keys by handle, and the registered resource a token must be
452
+ * issued for.
453
+ *
454
+ * Internal only, no HTTP annotation: relying parties use OidcProviderService.
455
+ *
456
+ * @generated from protobuf service sid.v1.authn.OidcIssuerService
457
+ */
458
+ export class OidcIssuerServiceClient implements IOidcIssuerServiceClient, ServiceInfo {
459
+ typeName = OidcIssuerService.typeName;
460
+ methods = OidcIssuerService.methods;
461
+ options = OidcIssuerService.options;
462
+ constructor(private readonly _transport: RpcTransport) {
463
+ }
464
+ /**
465
+ * Look up an issuer by handle. An unknown handle is NOT_FOUND with
466
+ * ErrorInfo reason OIDC_ISSUER_NOT_FOUND and a ResourceInfo naming the
467
+ * handle; the caller refuses the request and never falls back to another
468
+ * issuer.
469
+ *
470
+ * @generated from protobuf rpc: GetOidcIssuer
471
+ */
472
+ getOidcIssuer(input: GetOidcIssuerRequest, options?: RpcOptions): UnaryCall<GetOidcIssuerRequest, OidcIssuer> {
473
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
474
+ return stackIntercept<GetOidcIssuerRequest, OidcIssuer>("unary", this._transport, method, opt, input);
475
+ }
476
+ /**
477
+ * Resolve the protected resource a route of the ingress configuration names
478
+ * before a token is accepted for it. The resource must be registered under
479
+ * this issuer: an unknown issuer or indicator is NOT_FOUND with ErrorInfo
480
+ * reason RESOURCE_NOT_FOUND and a ResourceInfo naming the indicator. The
481
+ * caller refuses the route and never falls back to another target.
482
+ *
483
+ * @generated from protobuf rpc: GetProtectedResource
484
+ */
485
+ getProtectedResource(input: GetProtectedResourceRequest, options?: RpcOptions): UnaryCall<GetProtectedResourceRequest, ProtectedResourceTarget> {
486
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
487
+ return stackIntercept<GetProtectedResourceRequest, ProtectedResourceTarget>("unary", this._transport, method, opt, input);
488
+ }
489
+ }