@opsregistry/contracts 0.0.4 → 0.0.6
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 +15 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/it/access-authorize.d.ts +58 -0
- package/dist/it/access-authorize.d.ts.map +1 -0
- package/dist/it/access-authorize.js +23 -0
- package/dist/it/access-authorize.js.map +1 -0
- package/dist/it/access-policy-evaluate.d.ts +69 -0
- package/dist/it/access-policy-evaluate.d.ts.map +1 -0
- package/dist/it/access-policy-evaluate.js +27 -0
- package/dist/it/access-policy-evaluate.js.map +1 -0
- package/dist/it/iam-common.d.ts +127 -0
- package/dist/it/iam-common.d.ts.map +1 -0
- package/dist/it/iam-common.js +87 -0
- package/dist/it/iam-common.js.map +1 -0
- package/dist/it/identity-authenticate.d.ts +115 -0
- package/dist/it/identity-authenticate.d.ts.map +1 -0
- package/dist/it/identity-authenticate.js +29 -0
- package/dist/it/identity-authenticate.js.map +1 -0
- package/dist/it/identity-token-refresh.d.ts +143 -0
- package/dist/it/identity-token-refresh.d.ts.map +1 -0
- package/dist/it/identity-token-refresh.js +19 -0
- package/dist/it/identity-token-refresh.js.map +1 -0
- package/dist/it/identity-token-revoke.d.ts +93 -0
- package/dist/it/identity-token-revoke.d.ts.map +1 -0
- package/dist/it/identity-token-revoke.js +26 -0
- package/dist/it/identity-token-revoke.js.map +1 -0
- package/dist/storage/object-upload-file.d.ts +2 -0
- package/dist/storage/object-upload-file.d.ts.map +1 -1
- package/dist/storage/object-upload-file.js +2 -1
- package/dist/storage/object-upload-file.js.map +1 -1
- package/dist/storage/website-common.d.ts +52 -0
- package/dist/storage/website-common.d.ts.map +1 -0
- package/dist/storage/website-common.js +29 -0
- package/dist/storage/website-common.js.map +1 -0
- package/dist/storage/website-delete.d.ts +22 -0
- package/dist/storage/website-delete.d.ts.map +1 -0
- package/dist/storage/website-delete.js +12 -0
- package/dist/storage/website-delete.js.map +1 -0
- package/dist/storage/website-get.d.ts +48 -0
- package/dist/storage/website-get.d.ts.map +1 -0
- package/dist/storage/website-get.js +13 -0
- package/dist/storage/website-get.js.map +1 -0
- package/dist/storage/website-put.d.ts +49 -0
- package/dist/storage/website-put.d.ts.map +1 -0
- package/dist/storage/website-put.js +14 -0
- package/dist/storage/website-put.js.map +1 -0
- package/package.json +43 -3
- package/dist/storage/object-storage-delete-file.d.ts +0 -23
- package/dist/storage/object-storage-delete-file.d.ts.map +0 -1
- package/dist/storage/object-storage-delete-file.js +0 -13
- package/dist/storage/object-storage-delete-file.js.map +0 -1
- package/dist/storage/object-storage-list-objects.d.ts +0 -46
- package/dist/storage/object-storage-list-objects.d.ts.map +0 -1
- package/dist/storage/object-storage-list-objects.js +0 -26
- package/dist/storage/object-storage-list-objects.js.map +0 -1
- package/dist/storage/object-storage-upload-file.d.ts +0 -35
- package/dist/storage/object-storage-upload-file.d.ts.map +0 -1
- package/dist/storage/object-storage-upload-file.js +0 -21
- package/dist/storage/object-storage-upload-file.js.map +0 -1
package/README.md
CHANGED
|
@@ -24,6 +24,15 @@
|
|
|
24
24
|
- `finance.fiscalReceipt.create`
|
|
25
25
|
- `finance.fiscalReceipt.getStatus`
|
|
26
26
|
|
|
27
|
+
И первые спецификации из домена S3-совместимого объектного хранилища:
|
|
28
|
+
|
|
29
|
+
- `storage.object.uploadFile`
|
|
30
|
+
- `storage.object.deleteFile`
|
|
31
|
+
- `storage.object.list`
|
|
32
|
+
- `storage.website.put`
|
|
33
|
+
- `storage.website.get`
|
|
34
|
+
- `storage.website.delete`
|
|
35
|
+
|
|
27
36
|
Каждая операция экспортирует:
|
|
28
37
|
|
|
29
38
|
- `operationCode`
|
|
@@ -70,3 +79,9 @@ import {
|
|
|
70
79
|
- `finance.billPayment.create` для оплаты услуг внешнего поставщика.
|
|
71
80
|
|
|
72
81
|
Если меняется только метод оплаты внутри merchant checkout, например карта или СБП QR, это параметр `finance.merchantPayment.*`, а не отдельный провайдерский код операции.
|
|
82
|
+
|
|
83
|
+
## Граница storage website операций
|
|
84
|
+
|
|
85
|
+
`storage.object.*` описывает работу с объектами внутри бакета: загрузить файл, удалить файл, получить список объектов. Опциональный `websiteRedirectLocation` в `storage.object.uploadFile` отражает object-level redirect header и зависит от поддержки конкретного S3-провайдера.
|
|
86
|
+
|
|
87
|
+
`storage.website.*` описывает конфигурацию static website hosting на уровне бакета: index/error documents, redirect-all requests и routing rules. Эти операции отделены от object-операций, потому что меняют настройки сайта целиком, а не отдельный файл.
|
package/dist/index.d.ts
CHANGED
|
@@ -13,4 +13,14 @@ export * as storageObjectStorageCommon from './storage/object-storage-common.js'
|
|
|
13
13
|
export * as storageObjectUploadFile from './storage/object-upload-file.js';
|
|
14
14
|
export * as storageObjectDeleteFile from './storage/object-delete-file.js';
|
|
15
15
|
export * as storageObjectList from './storage/object-list.js';
|
|
16
|
+
export * as storageWebsiteCommon from './storage/website-common.js';
|
|
17
|
+
export * as storageWebsitePut from './storage/website-put.js';
|
|
18
|
+
export * as storageWebsiteGet from './storage/website-get.js';
|
|
19
|
+
export * as storageWebsiteDelete from './storage/website-delete.js';
|
|
20
|
+
export * as itIamCommon from './it/iam-common.js';
|
|
21
|
+
export * as itIdentityAuthenticate from './it/identity-authenticate.js';
|
|
22
|
+
export * as itIdentityTokenRefresh from './it/identity-token-refresh.js';
|
|
23
|
+
export * as itIdentityTokenRevoke from './it/identity-token-revoke.js';
|
|
24
|
+
export * as itAccessAuthorize from './it/access-authorize.js';
|
|
25
|
+
export * as itAccessPolicyEvaluate from './it/access-policy-evaluate.js';
|
|
16
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,2BAA2B,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,0BAA0B,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,2BAA2B,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,0BAA0B,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,4 +13,14 @@ export * as storageObjectStorageCommon from './storage/object-storage-common.js'
|
|
|
13
13
|
export * as storageObjectUploadFile from './storage/object-upload-file.js';
|
|
14
14
|
export * as storageObjectDeleteFile from './storage/object-delete-file.js';
|
|
15
15
|
export * as storageObjectList from './storage/object-list.js';
|
|
16
|
+
export * as storageWebsiteCommon from './storage/website-common.js';
|
|
17
|
+
export * as storageWebsitePut from './storage/website-put.js';
|
|
18
|
+
export * as storageWebsiteGet from './storage/website-get.js';
|
|
19
|
+
export * as storageWebsiteDelete from './storage/website-delete.js';
|
|
20
|
+
export * as itIamCommon from './it/iam-common.js';
|
|
21
|
+
export * as itIdentityAuthenticate from './it/identity-authenticate.js';
|
|
22
|
+
export * as itIdentityTokenRefresh from './it/identity-token-refresh.js';
|
|
23
|
+
export * as itIdentityTokenRevoke from './it/identity-token-revoke.js';
|
|
24
|
+
export * as itAccessAuthorize from './it/access-authorize.js';
|
|
25
|
+
export * as itAccessPolicyEvaluate from './it/access-policy-evaluate.js';
|
|
16
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,2BAA2B,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,0BAA0B,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,2BAA2B,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,0BAA0B,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,sBAAsB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const operationCode: "it.access.authorize";
|
|
3
|
+
export declare const accessAuthorizeInputSchema: z.ZodObject<{
|
|
4
|
+
subject: z.ZodObject<{
|
|
5
|
+
kind: z.ZodEnum<{
|
|
6
|
+
user: "user";
|
|
7
|
+
serviceAccount: "serviceAccount";
|
|
8
|
+
application: "application";
|
|
9
|
+
integration: "integration";
|
|
10
|
+
providerAccount: "providerAccount";
|
|
11
|
+
anonymous: "anonymous";
|
|
12
|
+
}>;
|
|
13
|
+
id: z.ZodOptional<z.ZodString>;
|
|
14
|
+
externalId: z.ZodOptional<z.ZodString>;
|
|
15
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
16
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
17
|
+
providerCode: z.ZodOptional<z.ZodString>;
|
|
18
|
+
roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
19
|
+
permissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
20
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
21
|
+
claims: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
action: z.ZodString;
|
|
24
|
+
resource: z.ZodObject<{
|
|
25
|
+
type: z.ZodString;
|
|
26
|
+
id: z.ZodOptional<z.ZodString>;
|
|
27
|
+
operationCode: z.ZodOptional<z.ZodString>;
|
|
28
|
+
attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
requiredPermissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
31
|
+
requiredScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
32
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
33
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
34
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
35
|
+
audience: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
36
|
+
ipAddress: z.ZodOptional<z.ZodString>;
|
|
37
|
+
userAgent: z.ZodOptional<z.ZodString>;
|
|
38
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
39
|
+
}, z.core.$strip>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export declare const accessAuthorizeResultSchema: z.ZodObject<{
|
|
42
|
+
operationCode: z.ZodLiteral<"it.access.authorize">;
|
|
43
|
+
decision: z.ZodEnum<{
|
|
44
|
+
allow: "allow";
|
|
45
|
+
deny: "deny";
|
|
46
|
+
indeterminate: "indeterminate";
|
|
47
|
+
}>;
|
|
48
|
+
reasonCodes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
49
|
+
matchedPermissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
50
|
+
missingPermissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
51
|
+
matchedScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
52
|
+
missingScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
53
|
+
obligations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
54
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export type AccessAuthorizeInput = z.infer<typeof accessAuthorizeInputSchema>;
|
|
57
|
+
export type AccessAuthorizeResult = z.infer<typeof accessAuthorizeResultSchema>;
|
|
58
|
+
//# sourceMappingURL=access-authorize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-authorize.d.ts","sourceRoot":"","sources":["../../src/it/access-authorize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,aAAa,EAAG,qBAA8B,CAAC;AAE5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOrC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAUtC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { authContextSchema, authDecisionSchema, identitySubjectSchema, resourceRefSchema, } from "./iam-common.js";
|
|
3
|
+
export const operationCode = "it.access.authorize";
|
|
4
|
+
export const accessAuthorizeInputSchema = z.object({
|
|
5
|
+
subject: identitySubjectSchema,
|
|
6
|
+
action: z.string().min(1),
|
|
7
|
+
resource: resourceRefSchema,
|
|
8
|
+
requiredPermissions: z.array(z.string().min(1)).default([]),
|
|
9
|
+
requiredScopes: z.array(z.string().min(1)).default([]),
|
|
10
|
+
context: authContextSchema.optional(),
|
|
11
|
+
});
|
|
12
|
+
export const accessAuthorizeResultSchema = z.object({
|
|
13
|
+
operationCode: z.literal(operationCode),
|
|
14
|
+
decision: authDecisionSchema,
|
|
15
|
+
reasonCodes: z.array(z.string().min(1)).default([]),
|
|
16
|
+
matchedPermissions: z.array(z.string().min(1)).default([]),
|
|
17
|
+
missingPermissions: z.array(z.string().min(1)).default([]),
|
|
18
|
+
matchedScopes: z.array(z.string().min(1)).default([]),
|
|
19
|
+
missingScopes: z.array(z.string().min(1)).default([]),
|
|
20
|
+
obligations: z.record(z.string(), z.unknown()).default({}),
|
|
21
|
+
metadata: z.record(z.string(), z.unknown()).default({}),
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=access-authorize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-authorize.js","sourceRoot":"","sources":["../../src/it/access-authorize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,aAAa,GAAG,qBAA8B,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,iBAAiB;IAC3B,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACvC,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const operationCode: "it.access.policy.evaluate";
|
|
3
|
+
export declare const accessPolicyEvaluateInputSchema: z.ZodObject<{
|
|
4
|
+
subject: z.ZodObject<{
|
|
5
|
+
kind: z.ZodEnum<{
|
|
6
|
+
user: "user";
|
|
7
|
+
serviceAccount: "serviceAccount";
|
|
8
|
+
application: "application";
|
|
9
|
+
integration: "integration";
|
|
10
|
+
providerAccount: "providerAccount";
|
|
11
|
+
anonymous: "anonymous";
|
|
12
|
+
}>;
|
|
13
|
+
id: z.ZodOptional<z.ZodString>;
|
|
14
|
+
externalId: z.ZodOptional<z.ZodString>;
|
|
15
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
16
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
17
|
+
providerCode: z.ZodOptional<z.ZodString>;
|
|
18
|
+
roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
19
|
+
permissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
20
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
21
|
+
claims: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
resources: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
24
|
+
type: z.ZodString;
|
|
25
|
+
id: z.ZodOptional<z.ZodString>;
|
|
26
|
+
operationCode: z.ZodOptional<z.ZodString>;
|
|
27
|
+
attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
28
|
+
}, z.core.$strip>>>;
|
|
29
|
+
policySetId: z.ZodOptional<z.ZodString>;
|
|
30
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
32
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
33
|
+
audience: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
|
+
ipAddress: z.ZodOptional<z.ZodString>;
|
|
35
|
+
userAgent: z.ZodOptional<z.ZodString>;
|
|
36
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
37
|
+
}, z.core.$strip>>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export declare const accessPolicyEvaluateResultSchema: z.ZodObject<{
|
|
40
|
+
operationCode: z.ZodLiteral<"it.access.policy.evaluate">;
|
|
41
|
+
decision: z.ZodEnum<{
|
|
42
|
+
allow: "allow";
|
|
43
|
+
deny: "deny";
|
|
44
|
+
indeterminate: "indeterminate";
|
|
45
|
+
}>;
|
|
46
|
+
effectiveRoles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
47
|
+
effectivePermissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
48
|
+
effectiveScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
49
|
+
resourceDecisions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
50
|
+
resource: z.ZodObject<{
|
|
51
|
+
type: z.ZodString;
|
|
52
|
+
id: z.ZodOptional<z.ZodString>;
|
|
53
|
+
operationCode: z.ZodOptional<z.ZodString>;
|
|
54
|
+
attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
decision: z.ZodEnum<{
|
|
57
|
+
allow: "allow";
|
|
58
|
+
deny: "deny";
|
|
59
|
+
indeterminate: "indeterminate";
|
|
60
|
+
}>;
|
|
61
|
+
permissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
62
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
63
|
+
reasonCodes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
64
|
+
}, z.core.$strip>>>;
|
|
65
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
export type AccessPolicyEvaluateInput = z.infer<typeof accessPolicyEvaluateInputSchema>;
|
|
68
|
+
export type AccessPolicyEvaluateResult = z.infer<typeof accessPolicyEvaluateResultSchema>;
|
|
69
|
+
//# sourceMappingURL=access-policy-evaluate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-policy-evaluate.d.ts","sourceRoot":"","sources":["../../src/it/access-policy-evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,aAAa,EAAG,2BAAoC,CAAC;AAElE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK1C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB3C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { authContextSchema, authDecisionSchema, identitySubjectSchema, resourceRefSchema, } from "./iam-common.js";
|
|
3
|
+
export const operationCode = "it.access.policy.evaluate";
|
|
4
|
+
export const accessPolicyEvaluateInputSchema = z.object({
|
|
5
|
+
subject: identitySubjectSchema,
|
|
6
|
+
resources: z.array(resourceRefSchema).default([]),
|
|
7
|
+
policySetId: z.string().min(1).optional(),
|
|
8
|
+
context: authContextSchema.optional(),
|
|
9
|
+
});
|
|
10
|
+
export const accessPolicyEvaluateResultSchema = z.object({
|
|
11
|
+
operationCode: z.literal(operationCode),
|
|
12
|
+
decision: authDecisionSchema,
|
|
13
|
+
effectiveRoles: z.array(z.string().min(1)).default([]),
|
|
14
|
+
effectivePermissions: z.array(z.string().min(1)).default([]),
|
|
15
|
+
effectiveScopes: z.array(z.string().min(1)).default([]),
|
|
16
|
+
resourceDecisions: z
|
|
17
|
+
.array(z.object({
|
|
18
|
+
resource: resourceRefSchema,
|
|
19
|
+
decision: authDecisionSchema,
|
|
20
|
+
permissions: z.array(z.string().min(1)).default([]),
|
|
21
|
+
scopes: z.array(z.string().min(1)).default([]),
|
|
22
|
+
reasonCodes: z.array(z.string().min(1)).default([]),
|
|
23
|
+
}))
|
|
24
|
+
.default([]),
|
|
25
|
+
metadata: z.record(z.string(), z.unknown()).default({}),
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=access-policy-evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-policy-evaluate.js","sourceRoot":"","sources":["../../src/it/access-policy-evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,aAAa,GAAG,2BAAoC,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACvC,QAAQ,EAAE,kBAAkB;IAC5B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,iBAAiB,EAAE,CAAC;SACjB,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACpD,CAAC,CACH;SACA,OAAO,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const accessModeSchema: z.ZodEnum<{
|
|
3
|
+
public: "public";
|
|
4
|
+
authorized: "authorized";
|
|
5
|
+
}>;
|
|
6
|
+
export declare const requestedAccessModeSchema: z.ZodEnum<{
|
|
7
|
+
public: "public";
|
|
8
|
+
authorized: "authorized";
|
|
9
|
+
auto: "auto";
|
|
10
|
+
}>;
|
|
11
|
+
export declare const subjectKindSchema: z.ZodEnum<{
|
|
12
|
+
user: "user";
|
|
13
|
+
serviceAccount: "serviceAccount";
|
|
14
|
+
application: "application";
|
|
15
|
+
integration: "integration";
|
|
16
|
+
providerAccount: "providerAccount";
|
|
17
|
+
anonymous: "anonymous";
|
|
18
|
+
}>;
|
|
19
|
+
export declare const authMethodSchema: z.ZodEnum<{
|
|
20
|
+
custom: "custom";
|
|
21
|
+
none: "none";
|
|
22
|
+
password: "password";
|
|
23
|
+
apiKey: "apiKey";
|
|
24
|
+
basic: "basic";
|
|
25
|
+
bearerToken: "bearerToken";
|
|
26
|
+
oauth2ClientCredentials: "oauth2ClientCredentials";
|
|
27
|
+
refreshToken: "refreshToken";
|
|
28
|
+
sessionCredential: "sessionCredential";
|
|
29
|
+
}>;
|
|
30
|
+
export declare const credentialKindSchema: z.ZodEnum<{
|
|
31
|
+
custom: "custom";
|
|
32
|
+
none: "none";
|
|
33
|
+
apiKey: "apiKey";
|
|
34
|
+
basic: "basic";
|
|
35
|
+
refreshToken: "refreshToken";
|
|
36
|
+
accessToken: "accessToken";
|
|
37
|
+
session: "session";
|
|
38
|
+
}>;
|
|
39
|
+
export declare const credentialTransportSchema: z.ZodEnum<{
|
|
40
|
+
none: "none";
|
|
41
|
+
header: "header";
|
|
42
|
+
query: "query";
|
|
43
|
+
cookie: "cookie";
|
|
44
|
+
body: "body";
|
|
45
|
+
}>;
|
|
46
|
+
export declare const authStatusSchema: z.ZodEnum<{
|
|
47
|
+
failed: "failed";
|
|
48
|
+
anonymous: "anonymous";
|
|
49
|
+
authenticated: "authenticated";
|
|
50
|
+
challengeRequired: "challengeRequired";
|
|
51
|
+
}>;
|
|
52
|
+
export declare const authDecisionSchema: z.ZodEnum<{
|
|
53
|
+
allow: "allow";
|
|
54
|
+
deny: "deny";
|
|
55
|
+
indeterminate: "indeterminate";
|
|
56
|
+
}>;
|
|
57
|
+
export declare const identitySubjectSchema: z.ZodObject<{
|
|
58
|
+
kind: z.ZodEnum<{
|
|
59
|
+
user: "user";
|
|
60
|
+
serviceAccount: "serviceAccount";
|
|
61
|
+
application: "application";
|
|
62
|
+
integration: "integration";
|
|
63
|
+
providerAccount: "providerAccount";
|
|
64
|
+
anonymous: "anonymous";
|
|
65
|
+
}>;
|
|
66
|
+
id: z.ZodOptional<z.ZodString>;
|
|
67
|
+
externalId: z.ZodOptional<z.ZodString>;
|
|
68
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
69
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
70
|
+
providerCode: z.ZodOptional<z.ZodString>;
|
|
71
|
+
roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
72
|
+
permissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
73
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
74
|
+
claims: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export declare const credentialMaterialSchema: z.ZodObject<{
|
|
77
|
+
kind: z.ZodEnum<{
|
|
78
|
+
custom: "custom";
|
|
79
|
+
none: "none";
|
|
80
|
+
apiKey: "apiKey";
|
|
81
|
+
basic: "basic";
|
|
82
|
+
refreshToken: "refreshToken";
|
|
83
|
+
accessToken: "accessToken";
|
|
84
|
+
session: "session";
|
|
85
|
+
}>;
|
|
86
|
+
transport: z.ZodDefault<z.ZodEnum<{
|
|
87
|
+
none: "none";
|
|
88
|
+
header: "header";
|
|
89
|
+
query: "query";
|
|
90
|
+
cookie: "cookie";
|
|
91
|
+
body: "body";
|
|
92
|
+
}>>;
|
|
93
|
+
scheme: z.ZodOptional<z.ZodString>;
|
|
94
|
+
name: z.ZodOptional<z.ZodString>;
|
|
95
|
+
value: z.ZodOptional<z.ZodString>;
|
|
96
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
97
|
+
refreshExpiresAt: z.ZodOptional<z.ZodString>;
|
|
98
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
99
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export declare const resourceRefSchema: z.ZodObject<{
|
|
102
|
+
type: z.ZodString;
|
|
103
|
+
id: z.ZodOptional<z.ZodString>;
|
|
104
|
+
operationCode: z.ZodOptional<z.ZodString>;
|
|
105
|
+
attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export declare const authContextSchema: z.ZodObject<{
|
|
108
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
109
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
110
|
+
audience: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
111
|
+
ipAddress: z.ZodOptional<z.ZodString>;
|
|
112
|
+
userAgent: z.ZodOptional<z.ZodString>;
|
|
113
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
114
|
+
}, z.core.$strip>;
|
|
115
|
+
export type AccessMode = z.infer<typeof accessModeSchema>;
|
|
116
|
+
export type RequestedAccessMode = z.infer<typeof requestedAccessModeSchema>;
|
|
117
|
+
export type SubjectKind = z.infer<typeof subjectKindSchema>;
|
|
118
|
+
export type AuthMethod = z.infer<typeof authMethodSchema>;
|
|
119
|
+
export type CredentialKind = z.infer<typeof credentialKindSchema>;
|
|
120
|
+
export type CredentialTransport = z.infer<typeof credentialTransportSchema>;
|
|
121
|
+
export type AuthStatus = z.infer<typeof authStatusSchema>;
|
|
122
|
+
export type AuthDecision = z.infer<typeof authDecisionSchema>;
|
|
123
|
+
export type IdentitySubject = z.infer<typeof identitySubjectSchema>;
|
|
124
|
+
export type CredentialMaterial = z.infer<typeof credentialMaterialSchema>;
|
|
125
|
+
export type ResourceRef = z.infer<typeof resourceRefSchema>;
|
|
126
|
+
export type AuthContext = z.infer<typeof authContextSchema>;
|
|
127
|
+
//# sourceMappingURL=iam-common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam-common.d.ts","sourceRoot":"","sources":["../../src/it/iam-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;EAAmC,CAAC;AACjE,eAAO,MAAM,yBAAyB;;;;EAIpC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;EAU3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;EAA6C,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;iBAWhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;iBAUnC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAO5B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const accessModeSchema = z.enum(["public", "authorized"]);
|
|
3
|
+
export const requestedAccessModeSchema = z.enum([
|
|
4
|
+
"auto",
|
|
5
|
+
"public",
|
|
6
|
+
"authorized",
|
|
7
|
+
]);
|
|
8
|
+
export const subjectKindSchema = z.enum([
|
|
9
|
+
"user",
|
|
10
|
+
"serviceAccount",
|
|
11
|
+
"application",
|
|
12
|
+
"integration",
|
|
13
|
+
"providerAccount",
|
|
14
|
+
"anonymous",
|
|
15
|
+
]);
|
|
16
|
+
export const authMethodSchema = z.enum([
|
|
17
|
+
"none",
|
|
18
|
+
"password",
|
|
19
|
+
"apiKey",
|
|
20
|
+
"basic",
|
|
21
|
+
"bearerToken",
|
|
22
|
+
"oauth2ClientCredentials",
|
|
23
|
+
"refreshToken",
|
|
24
|
+
"sessionCredential",
|
|
25
|
+
"custom",
|
|
26
|
+
]);
|
|
27
|
+
export const credentialKindSchema = z.enum([
|
|
28
|
+
"none",
|
|
29
|
+
"accessToken",
|
|
30
|
+
"refreshToken",
|
|
31
|
+
"apiKey",
|
|
32
|
+
"session",
|
|
33
|
+
"basic",
|
|
34
|
+
"custom",
|
|
35
|
+
]);
|
|
36
|
+
export const credentialTransportSchema = z.enum([
|
|
37
|
+
"header",
|
|
38
|
+
"query",
|
|
39
|
+
"cookie",
|
|
40
|
+
"body",
|
|
41
|
+
"none",
|
|
42
|
+
]);
|
|
43
|
+
export const authStatusSchema = z.enum([
|
|
44
|
+
"authenticated",
|
|
45
|
+
"anonymous",
|
|
46
|
+
"challengeRequired",
|
|
47
|
+
"failed",
|
|
48
|
+
]);
|
|
49
|
+
export const authDecisionSchema = z.enum(["allow", "deny", "indeterminate"]);
|
|
50
|
+
export const identitySubjectSchema = z.object({
|
|
51
|
+
kind: subjectKindSchema,
|
|
52
|
+
id: z.string().min(1).optional(),
|
|
53
|
+
externalId: z.string().min(1).optional(),
|
|
54
|
+
displayName: z.string().min(1).optional(),
|
|
55
|
+
tenantId: z.string().min(1).optional(),
|
|
56
|
+
providerCode: z.string().min(1).optional(),
|
|
57
|
+
roles: z.array(z.string().min(1)).default([]),
|
|
58
|
+
permissions: z.array(z.string().min(1)).default([]),
|
|
59
|
+
scopes: z.array(z.string().min(1)).default([]),
|
|
60
|
+
claims: z.record(z.string(), z.unknown()).default({}),
|
|
61
|
+
});
|
|
62
|
+
export const credentialMaterialSchema = z.object({
|
|
63
|
+
kind: credentialKindSchema,
|
|
64
|
+
transport: credentialTransportSchema.default("header"),
|
|
65
|
+
scheme: z.string().min(1).optional(),
|
|
66
|
+
name: z.string().min(1).optional(),
|
|
67
|
+
value: z.string().min(1).optional(),
|
|
68
|
+
expiresAt: z.string().min(1).optional(),
|
|
69
|
+
refreshExpiresAt: z.string().min(1).optional(),
|
|
70
|
+
scopes: z.array(z.string().min(1)).default([]),
|
|
71
|
+
metadata: z.record(z.string(), z.unknown()).default({}),
|
|
72
|
+
});
|
|
73
|
+
export const resourceRefSchema = z.object({
|
|
74
|
+
type: z.string().min(1),
|
|
75
|
+
id: z.string().min(1).optional(),
|
|
76
|
+
operationCode: z.string().min(1).optional(),
|
|
77
|
+
attributes: z.record(z.string(), z.unknown()).default({}),
|
|
78
|
+
});
|
|
79
|
+
export const authContextSchema = z.object({
|
|
80
|
+
requestId: z.string().min(1).optional(),
|
|
81
|
+
tenantId: z.string().min(1).optional(),
|
|
82
|
+
audience: z.array(z.string().min(1)).default([]),
|
|
83
|
+
ipAddress: z.string().min(1).optional(),
|
|
84
|
+
userAgent: z.string().min(1).optional(),
|
|
85
|
+
metadata: z.record(z.string(), z.unknown()).default({}),
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=iam-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam-common.js","sourceRoot":"","sources":["../../src/it/iam-common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const operationCode: "it.identity.authenticate";
|
|
3
|
+
export declare const identityAuthenticateInputSchema: z.ZodObject<{
|
|
4
|
+
subject: z.ZodObject<{
|
|
5
|
+
id: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
6
|
+
externalId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
7
|
+
displayName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
8
|
+
tenantId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
9
|
+
providerCode: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
10
|
+
roles: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
11
|
+
permissions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
12
|
+
scopes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
13
|
+
claims: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
14
|
+
kind: z.ZodEnum<{
|
|
15
|
+
user: "user";
|
|
16
|
+
serviceAccount: "serviceAccount";
|
|
17
|
+
application: "application";
|
|
18
|
+
integration: "integration";
|
|
19
|
+
providerAccount: "providerAccount";
|
|
20
|
+
anonymous: "anonymous";
|
|
21
|
+
}>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
method: z.ZodEnum<{
|
|
24
|
+
custom: "custom";
|
|
25
|
+
none: "none";
|
|
26
|
+
password: "password";
|
|
27
|
+
apiKey: "apiKey";
|
|
28
|
+
basic: "basic";
|
|
29
|
+
bearerToken: "bearerToken";
|
|
30
|
+
oauth2ClientCredentials: "oauth2ClientCredentials";
|
|
31
|
+
refreshToken: "refreshToken";
|
|
32
|
+
sessionCredential: "sessionCredential";
|
|
33
|
+
}>;
|
|
34
|
+
credentials: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
35
|
+
requestedAccessMode: z.ZodDefault<z.ZodEnum<{
|
|
36
|
+
public: "public";
|
|
37
|
+
authorized: "authorized";
|
|
38
|
+
auto: "auto";
|
|
39
|
+
}>>;
|
|
40
|
+
requestedScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
41
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
43
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
44
|
+
audience: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
45
|
+
ipAddress: z.ZodOptional<z.ZodString>;
|
|
46
|
+
userAgent: z.ZodOptional<z.ZodString>;
|
|
47
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
48
|
+
}, z.core.$strip>>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export declare const identityAuthenticateResultSchema: z.ZodObject<{
|
|
51
|
+
operationCode: z.ZodLiteral<"it.identity.authenticate">;
|
|
52
|
+
status: z.ZodEnum<{
|
|
53
|
+
failed: "failed";
|
|
54
|
+
anonymous: "anonymous";
|
|
55
|
+
authenticated: "authenticated";
|
|
56
|
+
challengeRequired: "challengeRequired";
|
|
57
|
+
}>;
|
|
58
|
+
subject: z.ZodOptional<z.ZodObject<{
|
|
59
|
+
kind: z.ZodEnum<{
|
|
60
|
+
user: "user";
|
|
61
|
+
serviceAccount: "serviceAccount";
|
|
62
|
+
application: "application";
|
|
63
|
+
integration: "integration";
|
|
64
|
+
providerAccount: "providerAccount";
|
|
65
|
+
anonymous: "anonymous";
|
|
66
|
+
}>;
|
|
67
|
+
id: z.ZodOptional<z.ZodString>;
|
|
68
|
+
externalId: z.ZodOptional<z.ZodString>;
|
|
69
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
70
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
71
|
+
providerCode: z.ZodOptional<z.ZodString>;
|
|
72
|
+
roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
73
|
+
permissions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
74
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
75
|
+
claims: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
accessModeUsed: z.ZodEnum<{
|
|
78
|
+
public: "public";
|
|
79
|
+
authorized: "authorized";
|
|
80
|
+
}>;
|
|
81
|
+
credential: z.ZodOptional<z.ZodObject<{
|
|
82
|
+
kind: z.ZodEnum<{
|
|
83
|
+
custom: "custom";
|
|
84
|
+
none: "none";
|
|
85
|
+
apiKey: "apiKey";
|
|
86
|
+
basic: "basic";
|
|
87
|
+
refreshToken: "refreshToken";
|
|
88
|
+
accessToken: "accessToken";
|
|
89
|
+
session: "session";
|
|
90
|
+
}>;
|
|
91
|
+
transport: z.ZodDefault<z.ZodEnum<{
|
|
92
|
+
none: "none";
|
|
93
|
+
header: "header";
|
|
94
|
+
query: "query";
|
|
95
|
+
cookie: "cookie";
|
|
96
|
+
body: "body";
|
|
97
|
+
}>>;
|
|
98
|
+
scheme: z.ZodOptional<z.ZodString>;
|
|
99
|
+
name: z.ZodOptional<z.ZodString>;
|
|
100
|
+
value: z.ZodOptional<z.ZodString>;
|
|
101
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
102
|
+
refreshExpiresAt: z.ZodOptional<z.ZodString>;
|
|
103
|
+
scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
104
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
105
|
+
}, z.core.$strip>>;
|
|
106
|
+
challenge: z.ZodOptional<z.ZodObject<{
|
|
107
|
+
type: z.ZodString;
|
|
108
|
+
description: z.ZodOptional<z.ZodString>;
|
|
109
|
+
parameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
110
|
+
}, z.core.$strip>>;
|
|
111
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
112
|
+
}, z.core.$strip>;
|
|
113
|
+
export type IdentityAuthenticateInput = z.infer<typeof identityAuthenticateInputSchema>;
|
|
114
|
+
export type IdentityAuthenticateResult = z.infer<typeof identityAuthenticateResultSchema>;
|
|
115
|
+
//# sourceMappingURL=identity-authenticate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-authenticate.d.ts","sourceRoot":"","sources":["../../src/it/identity-authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,aAAa,EAAG,0BAAmC,CAAC;AAEjE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS1C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc3C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC"}
|