@zephytiju/juntai-iam-ui 1.0.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 (68) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +28 -0
  3. package/dist/client.d.ts +17 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +149 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/fixtures.d.ts +6 -0
  8. package/dist/fixtures.d.ts.map +1 -0
  9. package/dist/fixtures.js +50 -0
  10. package/dist/fixtures.js.map +1 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +5 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/module.d.ts +19 -0
  16. package/dist/module.d.ts.map +1 -0
  17. package/dist/module.js +106 -0
  18. package/dist/module.js.map +1 -0
  19. package/dist/pages/AccountGroupsPage.d.ts +3 -0
  20. package/dist/pages/AccountGroupsPage.d.ts.map +1 -0
  21. package/dist/pages/AccountGroupsPage.js +4 -0
  22. package/dist/pages/AccountGroupsPage.js.map +1 -0
  23. package/dist/pages/AccountPoliciesPage.d.ts +3 -0
  24. package/dist/pages/AccountPoliciesPage.d.ts.map +1 -0
  25. package/dist/pages/AccountPoliciesPage.js +4 -0
  26. package/dist/pages/AccountPoliciesPage.js.map +1 -0
  27. package/dist/pages/AccountRolesPage.d.ts +3 -0
  28. package/dist/pages/AccountRolesPage.d.ts.map +1 -0
  29. package/dist/pages/AccountRolesPage.js +4 -0
  30. package/dist/pages/AccountRolesPage.js.map +1 -0
  31. package/dist/pages/AccountUsersPage.d.ts +3 -0
  32. package/dist/pages/AccountUsersPage.d.ts.map +1 -0
  33. package/dist/pages/AccountUsersPage.js +4 -0
  34. package/dist/pages/AccountUsersPage.js.map +1 -0
  35. package/dist/pages/ApplicationGroupsPage.d.ts +3 -0
  36. package/dist/pages/ApplicationGroupsPage.d.ts.map +1 -0
  37. package/dist/pages/ApplicationGroupsPage.js +4 -0
  38. package/dist/pages/ApplicationGroupsPage.js.map +1 -0
  39. package/dist/pages/ApplicationPoliciesPage.d.ts +3 -0
  40. package/dist/pages/ApplicationPoliciesPage.d.ts.map +1 -0
  41. package/dist/pages/ApplicationPoliciesPage.js +4 -0
  42. package/dist/pages/ApplicationPoliciesPage.js.map +1 -0
  43. package/dist/pages/ApplicationRolesPage.d.ts +3 -0
  44. package/dist/pages/ApplicationRolesPage.d.ts.map +1 -0
  45. package/dist/pages/ApplicationRolesPage.js +4 -0
  46. package/dist/pages/ApplicationRolesPage.js.map +1 -0
  47. package/dist/pages/ApplicationUsersPage.d.ts +3 -0
  48. package/dist/pages/ApplicationUsersPage.d.ts.map +1 -0
  49. package/dist/pages/ApplicationUsersPage.js +4 -0
  50. package/dist/pages/ApplicationUsersPage.js.map +1 -0
  51. package/dist/pages/ScopePage.d.ts +2 -0
  52. package/dist/pages/ScopePage.d.ts.map +1 -0
  53. package/dist/pages/ScopePage.js +2 -0
  54. package/dist/pages/ScopePage.js.map +1 -0
  55. package/dist/resource.d.ts +14 -0
  56. package/dist/resource.d.ts.map +1 -0
  57. package/dist/resource.js +28 -0
  58. package/dist/resource.js.map +1 -0
  59. package/dist/routing.d.ts +9 -0
  60. package/dist/routing.d.ts.map +1 -0
  61. package/dist/routing.js +22 -0
  62. package/dist/routing.js.map +1 -0
  63. package/dist/styles.css +122 -0
  64. package/dist/ui.d.ts +10 -0
  65. package/dist/ui.d.ts.map +1 -0
  66. package/dist/ui.js +217 -0
  67. package/dist/ui.js.map +1 -0
  68. package/package.json +84 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0
4
+
5
+ - Publish the synchronous `platform.iam` Console contributor and nine lazy pages.
6
+ - Add IAM-owned account/application scope selection and exact-application routing.
7
+ - Render Users, User groups, Roles, and Policies from the released aggregate clients without browser joins or invented fields.
8
+ - Add accessibility, route, contract, boundary, visual-contract, packaging, and clean-consumer verification.
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # JuntaiIAMUI
2
+
3
+ `@zephytiju/juntai-iam-ui` is the released `platform.iam` contributor for Juntai Console. It owns an IAM scope chooser and account/application list experiences for Users, User groups, Roles, and Policies.
4
+
5
+ The contributor imports only released public packages. It uses `ConsolePageContext.fetch` with the same-origin `platform.iam` aggregate client and uses `platform.application-metadata` only for authorized application labels and immutable identifiers. The destination IAM adapter independently authenticates and authorizes every exact-scope request.
6
+
7
+ Console composition imports both the contributor and its stylesheet:
8
+
9
+ ```ts
10
+ import iamModule from "@zephytiju/juntai-iam-ui";
11
+ import "@zephytiju/juntai-iam-ui/styles.css";
12
+ ```
13
+
14
+ ## Boundary
15
+
16
+ - No shell state, credentials, Casdoor persistence, runtime policy evaluation, or browser-direct protected origins.
17
+ - No UI-side cross-page joins or invented activity, role, assignment, or permission summaries.
18
+ - Application pages require one well-formed immutable `applicationId` and render nothing from the scope until both metadata and IAM reads succeed.
19
+ - `revision` remains a concurrency token and is never a list column.
20
+
21
+ ## Verification
22
+
23
+ ```sh
24
+ npm ci
25
+ npm run verify
26
+ ```
27
+
28
+ The package is published only from the tag-driven GitHub Actions workflow after verification.
@@ -0,0 +1,17 @@
1
+ import type { ConsolePageContext } from "@zephytiju/console-sdk";
2
+ import { type Application } from "@zephytiju/juntai-typescript-sdk/services/platform.application-metadata";
3
+ import { type ListResponse } from "@zephytiju/juntai-typescript-sdk/services/platform.iam";
4
+ import { type EntityKind } from "./routing.js";
5
+ export declare class IamGatewayError extends Error {
6
+ readonly status?: number | undefined;
7
+ readonly code?: string | undefined;
8
+ constructor(message: string, status?: number | undefined, code?: string | undefined);
9
+ }
10
+ export interface IamGateway {
11
+ listAccount(kind: EntityKind, signal?: AbortSignal): Promise<ListResponse>;
12
+ listApplication(applicationId: string, kind: EntityKind, signal?: AbortSignal): Promise<ListResponse>;
13
+ listApplications(signal?: AbortSignal): Promise<readonly Application[]>;
14
+ getApplication(applicationId: string, signal?: AbortSignal): Promise<Application>;
15
+ }
16
+ export declare function createIamGateway(context: ConsolePageContext): IamGateway;
17
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yEAAyE,CAAC;AACjF,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAQrE,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;gBAFtB,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAKzB;AAsGD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACtG,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACxE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,CAkDxE"}
package/dist/client.js ADDED
@@ -0,0 +1,149 @@
1
+ import { createClient as createApplicationClient, getApplication, listApplications, } from "@zephytiju/juntai-typescript-sdk/services/platform.application-metadata";
2
+ import { createClient as createIamClient, getApiIamV1AccountByKind, getApiIamV1ApplicationsByApplicationIdByKind, } from "@zephytiju/juntai-typescript-sdk/services/platform.iam";
3
+ import { requireApplicationId } from "./routing.js";
4
+ export class IamGatewayError extends Error {
5
+ status;
6
+ code;
7
+ constructor(message, status, code) {
8
+ super(message);
9
+ this.status = status;
10
+ this.code = code;
11
+ this.name = "IamGatewayError";
12
+ }
13
+ }
14
+ function failureText(error) {
15
+ if (error && typeof error === "object") {
16
+ const value = error;
17
+ const nested = value.error && typeof value.error === "object"
18
+ ? value.error
19
+ : undefined;
20
+ const message = [nested?.message, value.message, value.title, value.detail].find((item) => typeof item === "string" && item.length > 0);
21
+ const code = [nested?.code, value.code].find((item) => typeof item === "string" && item.length > 0);
22
+ return { message: message ?? "IAM request failed.", ...(code ? { code } : {}) };
23
+ }
24
+ return { message: "IAM request failed." };
25
+ }
26
+ function unwrap(result) {
27
+ if (result.data !== undefined)
28
+ return result.data;
29
+ const failure = failureText(result.error);
30
+ throw new IamGatewayError(failure.message, result.response?.status, failure.code);
31
+ }
32
+ function baseUrl() {
33
+ const origin = globalThis.location?.origin;
34
+ if (!origin || origin === "null")
35
+ throw new Error("The Console origin is unavailable.");
36
+ return origin;
37
+ }
38
+ function isRecord(value) {
39
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
40
+ }
41
+ function isString(value) {
42
+ return typeof value === "string" && value.length > 0;
43
+ }
44
+ function assertEntity(value, kind) {
45
+ if (!isRecord(value))
46
+ throw new IamGatewayError("IAM returned an invalid entity.");
47
+ for (const key of ["id", "displayName", "state", "updated", "revision"]) {
48
+ if (!isString(value[key]))
49
+ throw new IamGatewayError(`IAM entity is missing ${key}.`);
50
+ }
51
+ if (!["Active", "Disabled", "Revoked"].includes(value.state)) {
52
+ throw new IamGatewayError("IAM returned an invalid entity state.");
53
+ }
54
+ if (kind === "users") {
55
+ if (!["person", "service"].includes(value.principalType)) {
56
+ throw new IamGatewayError("IAM returned an invalid principal type.");
57
+ }
58
+ if (value.email !== undefined && typeof value.email !== "string") {
59
+ throw new IamGatewayError("IAM returned an invalid email field.");
60
+ }
61
+ }
62
+ if (kind === "groups" && !Array.isArray(value.members)) {
63
+ throw new IamGatewayError("IAM returned an invalid group member list.");
64
+ }
65
+ if (kind === "roles" && (!Array.isArray(value.members) || !Array.isArray(value.groups))) {
66
+ throw new IamGatewayError("IAM returned an invalid role membership list.");
67
+ }
68
+ if (kind === "policies") {
69
+ if (!isString(value.policy) || !isString(value.policyId)) {
70
+ throw new IamGatewayError("IAM returned an invalid policy identity.");
71
+ }
72
+ if (typeof value.statements !== "number" || typeof value.assignments !== "number") {
73
+ throw new IamGatewayError("IAM returned invalid policy counts.");
74
+ }
75
+ }
76
+ }
77
+ function validateList(value, expected, kind) {
78
+ if (!isRecord(value) || value.apiVersion !== "juntai.console.iam/v1" || value.kind !== kind) {
79
+ throw new IamGatewayError("IAM returned an incompatible list response.");
80
+ }
81
+ if (!isRecord(value.scope) || value.scope.plane !== expected.plane) {
82
+ throw new IamGatewayError("IAM returned data for a different authorization plane.");
83
+ }
84
+ if (expected.plane === "application" && value.scope.applicationId !== expected.applicationId) {
85
+ throw new IamGatewayError("IAM returned data for a different applicationId.");
86
+ }
87
+ if (!Array.isArray(value.items))
88
+ throw new IamGatewayError("IAM returned an invalid item list.");
89
+ for (const item of value.items)
90
+ assertEntity(item, kind);
91
+ return value;
92
+ }
93
+ function validateApplication(value, expectedId) {
94
+ if (!isString(value.application_id) || !isString(value.display_name)) {
95
+ throw new IamGatewayError("Application Metadata returned an invalid application.");
96
+ }
97
+ if (expectedId && value.application_id !== expectedId) {
98
+ throw new IamGatewayError("Application Metadata returned a different applicationId.");
99
+ }
100
+ return value;
101
+ }
102
+ export function createIamGateway(context) {
103
+ const iamClient = createIamClient({ baseUrl: baseUrl(), fetch: context.fetch });
104
+ const applicationClient = createApplicationClient({ baseUrl: baseUrl(), fetch: context.fetch });
105
+ const request = (signal) => ({
106
+ headers: { "X-Correlation-ID": context.correlationIds.create() },
107
+ ...(signal ? { signal } : {}),
108
+ });
109
+ return {
110
+ async listAccount(kind, signal) {
111
+ const result = await getApiIamV1AccountByKind({
112
+ client: iamClient,
113
+ path: { kind },
114
+ ...request(signal),
115
+ });
116
+ return validateList(unwrap(result), { plane: "account" }, kind);
117
+ },
118
+ async listApplication(applicationId, kind, signal) {
119
+ const exactId = requireApplicationId(applicationId);
120
+ const result = await getApiIamV1ApplicationsByApplicationIdByKind({
121
+ client: iamClient,
122
+ path: { applicationId: exactId, kind },
123
+ ...request(signal),
124
+ });
125
+ return validateList(unwrap(result), { plane: "application", applicationId: exactId }, kind);
126
+ },
127
+ async listApplications(signal) {
128
+ const result = await listApplications({
129
+ client: applicationClient,
130
+ query: { page_size: 100 },
131
+ ...request(signal),
132
+ });
133
+ const page = unwrap(result);
134
+ if (!Array.isArray(page.items))
135
+ throw new IamGatewayError("Application Metadata returned an invalid list.");
136
+ return page.items.map((application) => validateApplication(application));
137
+ },
138
+ async getApplication(applicationId, signal) {
139
+ const exactId = requireApplicationId(applicationId);
140
+ const result = await getApplication({
141
+ client: applicationClient,
142
+ path: { application_id: exactId },
143
+ ...request(signal),
144
+ });
145
+ return validateApplication(unwrap(result), exactId);
146
+ },
147
+ };
148
+ }
149
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Group, PolicySummary, Role, User } from "@zephytiju/juntai-typescript-sdk/services/platform.iam";
2
+ export declare const iamUsersFixture: readonly User[];
3
+ export declare const iamGroupsFixture: readonly Group[];
4
+ export declare const iamRolesFixture: readonly Role[];
5
+ export declare const iamPoliciesFixture: readonly PolicySummary[];
6
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,IAAI,EACJ,IAAI,EACL,MAAM,wDAAwD,CAAC;AAQhE,eAAO,MAAM,eAAe,EAAE,SAAS,IAAI,EAc1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAAS,KAAK,EAO5C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,IAAI,EAQ1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EAWtD,CAAC"}
@@ -0,0 +1,50 @@
1
+ const base = {
2
+ state: "Active",
3
+ updated: "2026-08-29T04:00:00Z",
4
+ revision: `sha256:${"a".repeat(64)}`,
5
+ };
6
+ export const iamUsersFixture = [
7
+ {
8
+ ...base,
9
+ id: "usr_01J9M7DX2",
10
+ displayName: "Mina Patel",
11
+ principalType: "person",
12
+ email: "mina@juntai.dev",
13
+ },
14
+ {
15
+ ...base,
16
+ id: "svc_01JB2Y6KC",
17
+ displayName: "build-release-bot",
18
+ principalType: "service",
19
+ },
20
+ ];
21
+ export const iamGroupsFixture = [
22
+ {
23
+ ...base,
24
+ id: "grp_platform_admins",
25
+ displayName: "Platform Admins",
26
+ members: ["usr_01J9M7DX2", "svc_01JB2Y6KC"],
27
+ },
28
+ ];
29
+ export const iamRolesFixture = [
30
+ {
31
+ ...base,
32
+ id: "role_release_reviewer",
33
+ displayName: "Release reviewer",
34
+ members: ["usr_01J9M7DX2"],
35
+ groups: ["grp_platform_admins"],
36
+ },
37
+ ];
38
+ export const iamPoliciesFixture = [
39
+ {
40
+ ...base,
41
+ id: "policy_record_1",
42
+ displayName: "Workflow operators",
43
+ policy: "Workflow operators",
44
+ policyId: "pol_app_sat_ops_workflows",
45
+ statements: 4,
46
+ assignments: 2,
47
+ actions: ["Details", "Edit", "Delete"],
48
+ },
49
+ ];
50
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAOA,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,QAAiB;IACxB,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,GAAG,IAAI;QACP,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,iBAAiB;KACzB;IACD;QACE,GAAG,IAAI;QACP,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,SAAS;KACzB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD;QACE,GAAG,IAAI;QACP,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;KAC5C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,GAAG,IAAI;QACP,EAAE,EAAE,uBAAuB;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;QAC1B,MAAM,EAAE,CAAC,qBAAqB,CAAC;KAChC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D;QACE,GAAG,IAAI;QACP,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,oBAAoB;QACjC,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,2BAA2B;QACrC,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC;KACvC;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { createIamGateway, IamGatewayError, type IamGateway } from "./client.js";
2
+ export { IAM_MODULE_ID, IAM_SERVICE_ID, iamModule } from "./module.js";
3
+ export { accountEntityTarget, applicationEntityTarget, iamScopeTarget, requireApplicationId, type EntityKind, type IamPlane, } from "./routing.js";
4
+ export { iamModule as default } from "./module.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { createIamGateway, IamGatewayError } from "./client.js";
2
+ export { IAM_MODULE_ID, IAM_SERVICE_ID, iamModule } from "./module.js";
3
+ export { accountEntityTarget, applicationEntityTarget, iamScopeTarget, requireApplicationId, } from "./routing.js";
4
+ export { iamModule as default } from "./module.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const IAM_MODULE_ID = "juntai-iam-ui";
2
+ export declare const IAM_SERVICE_ID = "platform.iam";
3
+ export declare const iamModule: {
4
+ readonly id: "juntai-iam-ui";
5
+ readonly version: "1.0.0";
6
+ readonly owner: {
7
+ readonly team: "data-intel-platform";
8
+ readonly repository: "zephytiju/JuntaiIAMUI";
9
+ };
10
+ readonly compatibility: {
11
+ readonly console: "^1.0.0";
12
+ readonly sdk: ">=2.1.0 <=2.1.0";
13
+ readonly react: "^19.0.0";
14
+ readonly typescriptSdk: ">=2.1.0 <=2.1.0";
15
+ };
16
+ readonly register: (registrar: import("@zephytiju/console-sdk").ConsoleRegistrar) => void;
17
+ };
18
+ export default iamModule;
19
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAuF7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAgBpB,CAAC;AAEH,eAAe,SAAS,CAAC"}
package/dist/module.js ADDED
@@ -0,0 +1,106 @@
1
+ import { defineConsoleModule, defineService } from "@zephytiju/console-sdk";
2
+ export const IAM_MODULE_ID = "juntai-iam-ui";
3
+ export const IAM_SERVICE_ID = "platform.iam";
4
+ const iamService = defineService({
5
+ id: IAM_SERVICE_ID,
6
+ ownerModuleId: IAM_MODULE_ID,
7
+ displayName: { defaultMessage: "Identity & access" },
8
+ summary: { defaultMessage: "Manage Console-account and exact-application IAM scopes." },
9
+ category: "Security & Governance",
10
+ tags: ["iam", "identity", "access", "roles", "policies"],
11
+ icon: { name: "security" },
12
+ discoveryPermissions: [{ resource: "iam", action: "read" }],
13
+ pages: [
14
+ {
15
+ id: "iam.scope",
16
+ kind: "overview",
17
+ path: "/",
18
+ label: { defaultMessage: "Choose IAM scope" },
19
+ permissions: [{ resource: "iam", action: "read" }],
20
+ load: () => import("./pages/ScopePage.js"),
21
+ },
22
+ {
23
+ id: "iam.account.users",
24
+ kind: "manage",
25
+ path: "/account/users",
26
+ label: { defaultMessage: "Account users" },
27
+ permissions: [{ resource: "iam.account.users", action: "read" }],
28
+ load: () => import("./pages/AccountUsersPage.js"),
29
+ },
30
+ {
31
+ id: "iam.account.groups",
32
+ kind: "manage",
33
+ path: "/account/groups",
34
+ label: { defaultMessage: "Account user groups" },
35
+ permissions: [{ resource: "iam.account.groups", action: "read" }],
36
+ load: () => import("./pages/AccountGroupsPage.js"),
37
+ },
38
+ {
39
+ id: "iam.account.roles",
40
+ kind: "manage",
41
+ path: "/account/roles",
42
+ label: { defaultMessage: "Account roles" },
43
+ permissions: [{ resource: "iam.account.roles", action: "read" }],
44
+ load: () => import("./pages/AccountRolesPage.js"),
45
+ },
46
+ {
47
+ id: "iam.account.policies",
48
+ kind: "manage",
49
+ path: "/account/policies",
50
+ label: { defaultMessage: "Account policies" },
51
+ permissions: [{ resource: "iam.account.policies", action: "read" }],
52
+ load: () => import("./pages/AccountPoliciesPage.js"),
53
+ },
54
+ {
55
+ id: "iam.application.users",
56
+ kind: "manage",
57
+ path: "/applications/:applicationId/users",
58
+ label: { defaultMessage: "Application users" },
59
+ permissions: [{ resource: "iam.application.users", action: "read" }],
60
+ load: () => import("./pages/ApplicationUsersPage.js"),
61
+ },
62
+ {
63
+ id: "iam.application.groups",
64
+ kind: "manage",
65
+ path: "/applications/:applicationId/groups",
66
+ label: { defaultMessage: "Application user groups" },
67
+ permissions: [{ resource: "iam.application.groups", action: "read" }],
68
+ load: () => import("./pages/ApplicationGroupsPage.js"),
69
+ },
70
+ {
71
+ id: "iam.application.roles",
72
+ kind: "manage",
73
+ path: "/applications/:applicationId/roles",
74
+ label: { defaultMessage: "Application roles" },
75
+ permissions: [{ resource: "iam.application.roles", action: "read" }],
76
+ load: () => import("./pages/ApplicationRolesPage.js"),
77
+ },
78
+ {
79
+ id: "iam.application.policies",
80
+ kind: "manage",
81
+ path: "/applications/:applicationId/policies",
82
+ label: { defaultMessage: "Application policies" },
83
+ permissions: [{ resource: "iam.application.policies", action: "read" }],
84
+ load: () => import("./pages/ApplicationPoliciesPage.js"),
85
+ },
86
+ ],
87
+ });
88
+ export const iamModule = defineConsoleModule({
89
+ id: IAM_MODULE_ID,
90
+ version: "1.0.0",
91
+ owner: {
92
+ team: "data-intel-platform",
93
+ repository: "zephytiju/JuntaiIAMUI",
94
+ },
95
+ compatibility: {
96
+ console: "^1.0.0",
97
+ sdk: ">=2.1.0 <=2.1.0",
98
+ react: "^19.0.0",
99
+ typescriptSdk: ">=2.1.0 <=2.1.0",
100
+ },
101
+ register(registrar) {
102
+ registrar.registerService(iamService);
103
+ },
104
+ });
105
+ export default iamModule;
106
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function AccountGroupsPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=AccountGroupsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountGroupsPage.d.ts","sourceRoot":"","sources":["../../src/pages/AccountGroupsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,2CAAqE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function AccountGroupsPage(props) { return _jsx(EntityPage, { ...props, plane: "account", kind: "groups" }); }
4
+ //# sourceMappingURL=AccountGroupsPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountGroupsPage.js","sourceRoot":"","sources":["../../src/pages/AccountGroupsPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function AccountPoliciesPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=AccountPoliciesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountPoliciesPage.d.ts","sourceRoot":"","sources":["../../src/pages/AccountPoliciesPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,2CAAuE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function AccountPoliciesPage(props) { return _jsx(EntityPage, { ...props, plane: "account", kind: "policies" }); }
4
+ //# sourceMappingURL=AccountPoliciesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountPoliciesPage.js","sourceRoot":"","sources":["../../src/pages/AccountPoliciesPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,UAAU,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function AccountRolesPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=AccountRolesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountRolesPage.d.ts","sourceRoot":"","sources":["../../src/pages/AccountRolesPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,2CAAoE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function AccountRolesPage(props) { return _jsx(EntityPage, { ...props, plane: "account", kind: "roles" }); }
4
+ //# sourceMappingURL=AccountRolesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountRolesPage.js","sourceRoot":"","sources":["../../src/pages/AccountRolesPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function AccountUsersPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=AccountUsersPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountUsersPage.d.ts","sourceRoot":"","sources":["../../src/pages/AccountUsersPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,2CAAoE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function AccountUsersPage(props) { return _jsx(EntityPage, { ...props, plane: "account", kind: "users" }); }
4
+ //# sourceMappingURL=AccountUsersPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountUsersPage.js","sourceRoot":"","sources":["../../src/pages/AccountUsersPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function ApplicationGroupsPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ApplicationGroupsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationGroupsPage.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationGroupsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,2CAAyE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function ApplicationGroupsPage(props) { return _jsx(EntityPage, { ...props, plane: "application", kind: "groups" }); }
4
+ //# sourceMappingURL=ApplicationGroupsPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationGroupsPage.js","sourceRoot":"","sources":["../../src/pages/ApplicationGroupsPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function ApplicationPoliciesPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ApplicationPoliciesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationPoliciesPage.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationPoliciesPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,2CAA2E"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function ApplicationPoliciesPage(props) { return _jsx(EntityPage, { ...props, plane: "application", kind: "policies" }); }
4
+ //# sourceMappingURL=ApplicationPoliciesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationPoliciesPage.js","sourceRoot":"","sources":["../../src/pages/ApplicationPoliciesPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,UAAU,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function ApplicationRolesPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ApplicationRolesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationRolesPage.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationRolesPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,2CAAwE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function ApplicationRolesPage(props) { return _jsx(EntityPage, { ...props, plane: "application", kind: "roles" }); }
4
+ //# sourceMappingURL=ApplicationRolesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationRolesPage.js","sourceRoot":"","sources":["../../src/pages/ApplicationRolesPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ConsolePageProps } from "@zephytiju/console-sdk";
2
+ export default function ApplicationUsersPage(props: ConsolePageProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ApplicationUsersPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationUsersPage.d.ts","sourceRoot":"","sources":["../../src/pages/ApplicationUsersPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,2CAAwE"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EntityPage } from "../ui.js";
3
+ export default function ApplicationUsersPage(props) { return _jsx(EntityPage, { ...props, plane: "application", kind: "users" }); }
4
+ //# sourceMappingURL=ApplicationUsersPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationUsersPage.js","sourceRoot":"","sources":["../../src/pages/ApplicationUsersPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAuB,IAAI,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ScopePage as default } from "../ui.js";
2
+ //# sourceMappingURL=ScopePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopePage.d.ts","sourceRoot":"","sources":["../../src/pages/ScopePage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ScopePage as default } from "../ui.js";
2
+ //# sourceMappingURL=ScopePage.js.map