@kinotic-ai/os-api 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +67 -15
- package/dist/index.d.cts +142 -36
- package/dist/index.d.ts +142 -36
- package/dist/index.js +72 -18
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -40,6 +40,9 @@ var __export = (target, all) => {
|
|
|
40
40
|
// packages/os-api/src/index.ts
|
|
41
41
|
var exports_src = {};
|
|
42
42
|
__export(exports_src, {
|
|
43
|
+
isSystemParticipant: () => isSystemParticipant,
|
|
44
|
+
isOrganizationParticipant: () => isOrganizationParticipant,
|
|
45
|
+
isApplicationParticipant: () => isApplicationParticipant,
|
|
43
46
|
WorkloadStatus: () => WorkloadStatus,
|
|
44
47
|
WorkloadServiceProxy: () => WorkloadServiceProxy,
|
|
45
48
|
Workload: () => Workload,
|
|
@@ -59,6 +62,8 @@ __export(exports_src, {
|
|
|
59
62
|
ProjectService: () => ProjectService,
|
|
60
63
|
Project: () => Project,
|
|
61
64
|
ProgressType: () => ProgressType,
|
|
65
|
+
PendingInviteSummary: () => PendingInviteSummary,
|
|
66
|
+
ParticipantType: () => ParticipantType,
|
|
62
67
|
PageableC3Type: () => PageableC3Type,
|
|
63
68
|
PageC3Type: () => PageC3Type,
|
|
64
69
|
OsApiPlugin: () => OsApiPlugin,
|
|
@@ -69,13 +74,13 @@ __export(exports_src, {
|
|
|
69
74
|
NamedQueriesDefinitionService: () => NamedQueriesDefinitionService,
|
|
70
75
|
NamedQueriesDefinition: () => NamedQueriesDefinition,
|
|
71
76
|
MigrationService: () => MigrationService,
|
|
77
|
+
MemberService: () => MemberService,
|
|
72
78
|
LoggersDescriptor: () => LoggersDescriptor,
|
|
73
79
|
LoggerLevelsDescriptor: () => LoggerLevelsDescriptor,
|
|
74
80
|
LogManager: () => LogManager,
|
|
75
81
|
LogLevel: () => LogLevel,
|
|
76
82
|
KinoticProjectConfig: () => KinoticProjectConfig,
|
|
77
83
|
IdDecorator: () => IdDecorator,
|
|
78
|
-
IamUserService: () => IamUserService,
|
|
79
84
|
IamUser: () => IamUser,
|
|
80
85
|
GroupLoggerLevelsDescriptor: () => GroupLoggerLevelsDescriptor,
|
|
81
86
|
GitHubToken: () => GitHubToken,
|
|
@@ -278,6 +283,7 @@ class Application {
|
|
|
278
283
|
id;
|
|
279
284
|
organizationId;
|
|
280
285
|
description;
|
|
286
|
+
tenantPerUser = false;
|
|
281
287
|
updated = null;
|
|
282
288
|
constructor(id, description) {
|
|
283
289
|
this.id = id;
|
|
@@ -456,6 +462,16 @@ class IamUser {
|
|
|
456
462
|
created = null;
|
|
457
463
|
updated = null;
|
|
458
464
|
}
|
|
465
|
+
// packages/os-api/src/api/model/iam/PendingInviteSummary.ts
|
|
466
|
+
class PendingInviteSummary {
|
|
467
|
+
id = null;
|
|
468
|
+
email = "";
|
|
469
|
+
displayName = null;
|
|
470
|
+
applicationId = null;
|
|
471
|
+
invitedByName = null;
|
|
472
|
+
created = null;
|
|
473
|
+
expiresAt = null;
|
|
474
|
+
}
|
|
459
475
|
// packages/os-api/src/api/model/github/GitHubAppInstallation.ts
|
|
460
476
|
class GitHubAppInstallation {
|
|
461
477
|
id = null;
|
|
@@ -493,6 +509,26 @@ class KinoticProjectConfig {
|
|
|
493
509
|
fileExtensionForImports = ".js";
|
|
494
510
|
validate;
|
|
495
511
|
}
|
|
512
|
+
// packages/os-api/src/api/security/ParticipantType.ts
|
|
513
|
+
var ParticipantType;
|
|
514
|
+
((ParticipantType2) => {
|
|
515
|
+
ParticipantType2["SYSTEM"] = "system";
|
|
516
|
+
ParticipantType2["ORGANIZATION"] = "organization";
|
|
517
|
+
ParticipantType2["APPLICATION"] = "application";
|
|
518
|
+
})(ParticipantType ||= {});
|
|
519
|
+
// packages/os-api/src/api/security/ParticipantGuards.ts
|
|
520
|
+
function scopeType(participant) {
|
|
521
|
+
return participant.type;
|
|
522
|
+
}
|
|
523
|
+
function isSystemParticipant(participant) {
|
|
524
|
+
return scopeType(participant) === "system" /* SYSTEM */;
|
|
525
|
+
}
|
|
526
|
+
function isOrganizationParticipant(participant) {
|
|
527
|
+
return scopeType(participant) === "organization" /* ORGANIZATION */;
|
|
528
|
+
}
|
|
529
|
+
function isApplicationParticipant(participant) {
|
|
530
|
+
return scopeType(participant) === "application" /* APPLICATION */;
|
|
531
|
+
}
|
|
496
532
|
// packages/os-api/src/api/services/IApplicationService.ts
|
|
497
533
|
var import_core = require("@kinotic-ai/core");
|
|
498
534
|
|
|
@@ -709,27 +745,43 @@ class WorkloadServiceProxy extends import_core7.CrudServiceProxy {
|
|
|
709
745
|
return this.serviceProxy.invoke("syncIndex", []);
|
|
710
746
|
}
|
|
711
747
|
}
|
|
712
|
-
// packages/os-api/src/api/services/
|
|
748
|
+
// packages/os-api/src/api/services/IMemberService.ts
|
|
713
749
|
var import_core8 = require("@kinotic-ai/core");
|
|
714
750
|
|
|
715
|
-
class
|
|
751
|
+
class MemberService {
|
|
752
|
+
serviceProxy;
|
|
716
753
|
constructor(kinotic) {
|
|
717
|
-
|
|
754
|
+
this.serviceProxy = kinotic.serviceProxy("org.kinotic.os.api.services.iam.MemberService");
|
|
755
|
+
}
|
|
756
|
+
async findMembers(applicationId, pageable) {
|
|
757
|
+
const page = await this.serviceProxy.invoke("findMembers", [applicationId, pageable]);
|
|
758
|
+
return new import_core8.FunctionalIterablePage(pageable, page, (next) => this.serviceProxy.invoke("findMembers", [applicationId, next]));
|
|
718
759
|
}
|
|
719
|
-
|
|
720
|
-
|
|
760
|
+
async searchMembers(searchText, applicationId, pageable) {
|
|
761
|
+
const page = await this.serviceProxy.invoke("searchMembers", [searchText, applicationId, pageable]);
|
|
762
|
+
return new import_core8.FunctionalIterablePage(pageable, page, (next) => this.serviceProxy.invoke("searchMembers", [searchText, applicationId, next]));
|
|
721
763
|
}
|
|
722
|
-
|
|
723
|
-
return this.serviceProxy.invoke("
|
|
764
|
+
inviteMember(email, displayName, applicationId) {
|
|
765
|
+
return this.serviceProxy.invoke("inviteMember", [email, displayName, applicationId]);
|
|
724
766
|
}
|
|
725
|
-
|
|
726
|
-
return this.serviceProxy.invoke("
|
|
767
|
+
setMemberEnabled(userId, enabled) {
|
|
768
|
+
return this.serviceProxy.invoke("setMemberEnabled", [userId, enabled]);
|
|
727
769
|
}
|
|
728
|
-
|
|
729
|
-
return this.serviceProxy.invoke("
|
|
770
|
+
removeMember(userId) {
|
|
771
|
+
return this.serviceProxy.invoke("removeMember", [userId]);
|
|
730
772
|
}
|
|
731
|
-
|
|
732
|
-
|
|
773
|
+
async findPendingInvites(applicationId, pageable) {
|
|
774
|
+
const page = await this.serviceProxy.invoke("findPendingInvites", [applicationId, pageable]);
|
|
775
|
+
return new import_core8.FunctionalIterablePage(pageable, page, (next) => this.serviceProxy.invoke("findPendingInvites", [applicationId, next]));
|
|
776
|
+
}
|
|
777
|
+
cancelInvite(inviteId) {
|
|
778
|
+
return this.serviceProxy.invoke("cancelInvite", [inviteId]);
|
|
779
|
+
}
|
|
780
|
+
memberDataSource(applicationId) {
|
|
781
|
+
return {
|
|
782
|
+
findAll: (pageable) => this.findMembers(applicationId, pageable),
|
|
783
|
+
search: (searchText, pageable) => this.searchMembers(searchText, applicationId, pageable)
|
|
784
|
+
};
|
|
733
785
|
}
|
|
734
786
|
}
|
|
735
787
|
// packages/os-api/src/api/services/IDeviceApprovalService.ts
|
|
@@ -773,7 +825,7 @@ var OsApiPlugin = {
|
|
|
773
825
|
dataInsights: new DataInsightsService(kinotic),
|
|
774
826
|
vmNodes: new VmNodeServiceProxy(kinotic),
|
|
775
827
|
workloads: new WorkloadServiceProxy(kinotic),
|
|
776
|
-
|
|
828
|
+
members: new MemberService(kinotic),
|
|
777
829
|
deviceApproval: new DeviceApprovalService(kinotic),
|
|
778
830
|
githubAppInstallations: new GitHubAppInstallationService(kinotic)
|
|
779
831
|
};
|
package/dist/index.d.cts
CHANGED
|
@@ -145,6 +145,12 @@ declare class Application implements Identifiable<string> {
|
|
|
145
145
|
*/
|
|
146
146
|
organizationId: string;
|
|
147
147
|
description: string;
|
|
148
|
+
/**
|
|
149
|
+
* When true, every APPLICATION-scope user created for this application receives an
|
|
150
|
+
* auto-generated unique tenantId, isolating each user's SHARED entity data in its own
|
|
151
|
+
* tenant. Applies only to users created after it is enabled.
|
|
152
|
+
*/
|
|
153
|
+
tenantPerUser: boolean;
|
|
148
154
|
updated: number | null;
|
|
149
155
|
constructor(id: string, description: string);
|
|
150
156
|
}
|
|
@@ -585,12 +591,31 @@ interface CompleteOrgRequest {
|
|
|
585
591
|
}
|
|
586
592
|
import { Identifiable as Identifiable9 } from "@kinotic-ai/core";
|
|
587
593
|
/**
|
|
594
|
+
* Console view of a pending invitation. Deliberately excludes the accept token — anyone who
|
|
595
|
+
* can list invitations must not be able to redeem them.
|
|
596
|
+
*/
|
|
597
|
+
declare class PendingInviteSummary implements Identifiable9<string> {
|
|
598
|
+
id: string | null;
|
|
599
|
+
/** Email the invitation was sent to. */
|
|
600
|
+
email: string;
|
|
601
|
+
/** Display name the inviter entered, if any. */
|
|
602
|
+
displayName: string | null;
|
|
603
|
+
/** The application the invitee would join; null for an organization-member invite. */
|
|
604
|
+
applicationId: string | null;
|
|
605
|
+
/** Display name of the member who sent the invitation. */
|
|
606
|
+
invitedByName: string | null;
|
|
607
|
+
created: number | null;
|
|
608
|
+
/** When the invitation stops being acceptable. */
|
|
609
|
+
expiresAt: number | null;
|
|
610
|
+
}
|
|
611
|
+
import { Identifiable as Identifiable10 } from "@kinotic-ai/core";
|
|
612
|
+
/**
|
|
588
613
|
* Persisted record of one GitHub App installation that a Kinotic Org has authorised.
|
|
589
614
|
* The durable binding that says "Org X has access to GitHub install Y" — without it,
|
|
590
615
|
* no installation token can be minted on behalf of the org and webhook deliveries
|
|
591
616
|
* can't be matched to a project.
|
|
592
617
|
*/
|
|
593
|
-
declare class GitHubAppInstallation implements
|
|
618
|
+
declare class GitHubAppInstallation implements Identifiable10<string> {
|
|
594
619
|
id: string | null;
|
|
595
620
|
organizationId: string;
|
|
596
621
|
githubInstallationId: number;
|
|
@@ -696,6 +721,78 @@ declare class KinoticProjectConfig {
|
|
|
696
721
|
*/
|
|
697
722
|
validate?: boolean;
|
|
698
723
|
}
|
|
724
|
+
/**
|
|
725
|
+
* Identifies which scope layer a participant authenticated against. The server serializes this as
|
|
726
|
+
* the {@code type} discriminator on a participant, and it is used to narrow a base
|
|
727
|
+
* {@code IParticipant} to one of the scope-typed participant interfaces.
|
|
728
|
+
*/
|
|
729
|
+
declare enum ParticipantType {
|
|
730
|
+
SYSTEM = "system",
|
|
731
|
+
ORGANIZATION = "organization",
|
|
732
|
+
APPLICATION = "application"
|
|
733
|
+
}
|
|
734
|
+
import { IParticipant } from "@kinotic-ai/core";
|
|
735
|
+
/**
|
|
736
|
+
* A participant authenticated against the platform SYSTEM scope — a platform operator with no
|
|
737
|
+
* organization or application context. Mirrors the server {@code SystemParticipant}.
|
|
738
|
+
*/
|
|
739
|
+
interface ISystemParticipant extends IParticipant {
|
|
740
|
+
type: ParticipantType.SYSTEM;
|
|
741
|
+
}
|
|
742
|
+
import { IParticipant as IParticipant2 } from "@kinotic-ai/core";
|
|
743
|
+
/**
|
|
744
|
+
* A participant authenticated against an Organization, carrying ORGANIZATION-scope authority over
|
|
745
|
+
* that Organization's resources. {@link organizationId} is the id of the owning Organization and
|
|
746
|
+
* is never null. Mirrors the server {@code OrganizationParticipant}.
|
|
747
|
+
*/
|
|
748
|
+
interface IOrganizationParticipant extends IParticipant2 {
|
|
749
|
+
type: ParticipantType.ORGANIZATION;
|
|
750
|
+
/**
|
|
751
|
+
* The id of the Organization this participant is authenticated under; never null.
|
|
752
|
+
*/
|
|
753
|
+
organizationId: string;
|
|
754
|
+
}
|
|
755
|
+
import { IParticipant as IParticipant3 } from "@kinotic-ai/core";
|
|
756
|
+
/**
|
|
757
|
+
* A participant authenticated against an Application, carrying APPLICATION-scope authority over
|
|
758
|
+
* that Application's own resources and end-user data. {@link organizationId} is the id of the
|
|
759
|
+
* Organization that owns the Application; it identifies the owning org for data ownership and
|
|
760
|
+
* routing of the Application's entity definitions and end-user data, and is never null.
|
|
761
|
+
* Mirrors the server {@code ApplicationParticipant}.
|
|
762
|
+
*/
|
|
763
|
+
interface IApplicationParticipant extends IParticipant3 {
|
|
764
|
+
type: ParticipantType.APPLICATION;
|
|
765
|
+
/**
|
|
766
|
+
* The id of the Organization that owns the Application this participant is authenticated
|
|
767
|
+
* under; never null.
|
|
768
|
+
*/
|
|
769
|
+
organizationId: string;
|
|
770
|
+
/**
|
|
771
|
+
* The id of the Application this participant is authenticated under; never null.
|
|
772
|
+
*/
|
|
773
|
+
applicationId: string;
|
|
774
|
+
/**
|
|
775
|
+
* The tenant slice of the Application's end-user data this participant belongs to, or null
|
|
776
|
+
* when the Application is not multi-tenant.
|
|
777
|
+
*/
|
|
778
|
+
tenantId?: string | null;
|
|
779
|
+
}
|
|
780
|
+
import { IParticipant as IParticipant4 } from "@kinotic-ai/core";
|
|
781
|
+
/**
|
|
782
|
+
* @return true if the participant authenticated against the platform SYSTEM scope
|
|
783
|
+
*/
|
|
784
|
+
declare function isSystemParticipant(participant: IParticipant4): participant is ISystemParticipant;
|
|
785
|
+
/**
|
|
786
|
+
* Narrows to an {@link IOrganizationParticipant}, which carries an {@code organizationId} and
|
|
787
|
+
* ORGANIZATION-scope authority.
|
|
788
|
+
*
|
|
789
|
+
* @return true if the participant authenticated against an Organization
|
|
790
|
+
*/
|
|
791
|
+
declare function isOrganizationParticipant(participant: IParticipant4): participant is IOrganizationParticipant;
|
|
792
|
+
/**
|
|
793
|
+
* @return true if the participant authenticated against an Application
|
|
794
|
+
*/
|
|
795
|
+
declare function isApplicationParticipant(participant: IParticipant4): participant is IApplicationParticipant;
|
|
699
796
|
import { IKinotic } from "@kinotic-ai/core";
|
|
700
797
|
import { CrudServiceProxy, ICrudServiceProxy } from "@kinotic-ai/core";
|
|
701
798
|
interface IApplicationService extends ICrudServiceProxy<Application> {
|
|
@@ -1015,46 +1112,55 @@ declare class WorkloadServiceProxy extends CrudServiceProxy7<Workload> implement
|
|
|
1015
1112
|
countForNode(nodeId: string): Promise<number>;
|
|
1016
1113
|
syncIndex(): Promise<void>;
|
|
1017
1114
|
}
|
|
1018
|
-
import {
|
|
1115
|
+
import { IDataSource, IKinotic as IKinotic11, IterablePage as IterablePage4, Pageable as Pageable4 } from "@kinotic-ai/core";
|
|
1019
1116
|
/**
|
|
1020
|
-
*
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1023
|
-
*
|
|
1024
|
-
* the service. The shape here is kept in sync so it is ready once that happens; confirm the
|
|
1025
|
-
* published namespace before relying on it.
|
|
1117
|
+
* Member management for the caller's organization and its applications. Scope is selected
|
|
1118
|
+
* with applicationId — null addresses org members, set addresses that application's
|
|
1119
|
+
* members — and the backend derives the organization from the authenticated participant,
|
|
1120
|
+
* so it is never a parameter.
|
|
1026
1121
|
*/
|
|
1027
|
-
interface
|
|
1028
|
-
/**
|
|
1029
|
-
|
|
1122
|
+
interface IMemberService {
|
|
1123
|
+
/** Lists the members of the scope. */
|
|
1124
|
+
findMembers(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1030
1125
|
/**
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
1033
|
-
* both set → APPLICATION.
|
|
1126
|
+
* Searches the scope's members by free text over email and display name. Blank
|
|
1127
|
+
* searchText is equivalent to {@link findMembers}.
|
|
1034
1128
|
*/
|
|
1035
|
-
|
|
1129
|
+
searchMembers(searchText: string, applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1036
1130
|
/**
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1131
|
+
* Invites someone into the scope by email. Sends the invitation email and returns the
|
|
1132
|
+
* pending invitation. Rejects when the email already has an account in the scope or an
|
|
1133
|
+
* invitation is already pending for it.
|
|
1039
1134
|
*/
|
|
1040
|
-
|
|
1135
|
+
inviteMember(email: string, displayName: string | null, applicationId: string | null): Promise<PendingInviteSummary>;
|
|
1041
1136
|
/**
|
|
1042
|
-
*
|
|
1043
|
-
*
|
|
1137
|
+
* Enables or disables a member of the caller's organization. Disabling gates future
|
|
1138
|
+
* logins; established sessions last until they expire. Callers cannot disable themselves.
|
|
1044
1139
|
*/
|
|
1045
|
-
|
|
1046
|
-
/**
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1140
|
+
setMemberEnabled(userId: string, enabled: boolean): Promise<void>;
|
|
1141
|
+
/**
|
|
1142
|
+
* Permanently removes a member of the caller's organization, including any stored
|
|
1143
|
+
* credential. Callers cannot remove themselves.
|
|
1144
|
+
*/
|
|
1145
|
+
removeMember(userId: string): Promise<void>;
|
|
1146
|
+
/** Lists the scope's live (unexpired) pending invitations. */
|
|
1147
|
+
findPendingInvites(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<PendingInviteSummary>>;
|
|
1148
|
+
/** Cancels a pending invitation belonging to the caller's organization. */
|
|
1149
|
+
cancelInvite(inviteId: string): Promise<void>;
|
|
1150
|
+
/** An {@link IDataSource} over the scope's members, for table components. */
|
|
1151
|
+
memberDataSource(applicationId: string | null): IDataSource<IamUser>;
|
|
1050
1152
|
}
|
|
1051
|
-
declare class
|
|
1153
|
+
declare class MemberService implements IMemberService {
|
|
1154
|
+
private readonly serviceProxy;
|
|
1052
1155
|
constructor(kinotic: IKinotic11);
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1156
|
+
findMembers(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1157
|
+
searchMembers(searchText: string, applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1158
|
+
inviteMember(email: string, displayName: string | null, applicationId: string | null): Promise<PendingInviteSummary>;
|
|
1159
|
+
setMemberEnabled(userId: string, enabled: boolean): Promise<void>;
|
|
1160
|
+
removeMember(userId: string): Promise<void>;
|
|
1161
|
+
findPendingInvites(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<PendingInviteSummary>>;
|
|
1162
|
+
cancelInvite(inviteId: string): Promise<void>;
|
|
1163
|
+
memberDataSource(applicationId: string | null): IDataSource<IamUser>;
|
|
1058
1164
|
}
|
|
1059
1165
|
import { IKinotic as IKinotic12 } from "@kinotic-ai/core";
|
|
1060
1166
|
/**
|
|
@@ -1074,8 +1180,8 @@ declare class DeviceApprovalService implements IDeviceApprovalService {
|
|
|
1074
1180
|
constructor(kinotic: IKinotic12);
|
|
1075
1181
|
approve(userCode: string): Promise<void>;
|
|
1076
1182
|
}
|
|
1077
|
-
import { CrudServiceProxy as
|
|
1078
|
-
interface IGitHubAppInstallationService extends
|
|
1183
|
+
import { CrudServiceProxy as CrudServiceProxy8, IKinotic as IKinotic13, ICrudServiceProxy as ICrudServiceProxy8 } from "@kinotic-ai/core";
|
|
1184
|
+
interface IGitHubAppInstallationService extends ICrudServiceProxy8<GitHubAppInstallation> {
|
|
1079
1185
|
/**
|
|
1080
1186
|
* Stages a single-use state token bound to the caller's organization plus the
|
|
1081
1187
|
* supplied returnTo, then returns the GitHub install URL with that state
|
|
@@ -1100,7 +1206,7 @@ interface IGitHubAppInstallationService extends ICrudServiceProxy9<GitHubAppInst
|
|
|
1100
1206
|
*/
|
|
1101
1207
|
findForCurrentOrg(): Promise<GitHubAppInstallation | null>;
|
|
1102
1208
|
}
|
|
1103
|
-
declare class GitHubAppInstallationService extends
|
|
1209
|
+
declare class GitHubAppInstallationService extends CrudServiceProxy8<GitHubAppInstallation> implements IGitHubAppInstallationService {
|
|
1104
1210
|
constructor(kinotic: IKinotic13);
|
|
1105
1211
|
startInstall(returnTo: string | null): Promise<string>;
|
|
1106
1212
|
completeInstall(installationId: number, state: string): Promise<GitHubInstallCompletion>;
|
|
@@ -1118,7 +1224,7 @@ interface IOsApiExtension {
|
|
|
1118
1224
|
dataInsights: IDataInsightsService;
|
|
1119
1225
|
vmNodes: IVmNodeService;
|
|
1120
1226
|
workloads: IWorkloadService;
|
|
1121
|
-
|
|
1227
|
+
members: IMemberService;
|
|
1122
1228
|
deviceApproval: IDeviceApprovalService;
|
|
1123
1229
|
githubAppInstallations: IGitHubAppInstallationService;
|
|
1124
1230
|
}
|
|
@@ -1126,4 +1232,4 @@ declare const OsApiPlugin: KinoticPlugin<IOsApiExtension>;
|
|
|
1126
1232
|
declare module "@kinotic-ai/core" {
|
|
1127
1233
|
interface KinoticSingleton extends IOsApiExtension {}
|
|
1128
1234
|
}
|
|
1129
|
-
export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, OrganizationService, Organization, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, KinoticProjectConfig, InsightRequest, InsightProgress, IdDecorator,
|
|
1235
|
+
export { isSystemParticipant, isOrganizationParticipant, isApplicationParticipant, WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PendingInviteSummary, ParticipantType, PageableC3Type, PageC3Type, OsApiPlugin, OrganizationService, Organization, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, MemberService, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, KinoticProjectConfig, InsightRequest, InsightProgress, IdDecorator, IamUser, IWorkloadService, IVmNodeService, ISystemParticipant, IProjectService, IOsApiExtension, IOrganizationService, IOrganizationParticipant, INamedQueriesDefinitionService, IMigrationService, IMemberService, ILogManager, IGitHubAppInstallationService, IEntityDefinitionService, IDeviceApprovalService, IDataInsightsService, IApplicationService, IApplicationParticipant, GroupLoggerLevelsDescriptor, GitHubToken, GitHubRepoToken, GitHubInstallCompletion, GitHubAppInstallationService, GitHubAppInstallation, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, EntitiesPathConfig, DiscriminatorDecorator, DeviceApprovalService, DataInsightsService, DataInsightsComponent, CompleteOrgRequest, AutoGeneratedIdDecorator, AuthType, ApplicationService, Application };
|
package/dist/index.d.ts
CHANGED
|
@@ -145,6 +145,12 @@ declare class Application implements Identifiable<string> {
|
|
|
145
145
|
*/
|
|
146
146
|
organizationId: string;
|
|
147
147
|
description: string;
|
|
148
|
+
/**
|
|
149
|
+
* When true, every APPLICATION-scope user created for this application receives an
|
|
150
|
+
* auto-generated unique tenantId, isolating each user's SHARED entity data in its own
|
|
151
|
+
* tenant. Applies only to users created after it is enabled.
|
|
152
|
+
*/
|
|
153
|
+
tenantPerUser: boolean;
|
|
148
154
|
updated: number | null;
|
|
149
155
|
constructor(id: string, description: string);
|
|
150
156
|
}
|
|
@@ -585,12 +591,31 @@ interface CompleteOrgRequest {
|
|
|
585
591
|
}
|
|
586
592
|
import { Identifiable as Identifiable9 } from "@kinotic-ai/core";
|
|
587
593
|
/**
|
|
594
|
+
* Console view of a pending invitation. Deliberately excludes the accept token — anyone who
|
|
595
|
+
* can list invitations must not be able to redeem them.
|
|
596
|
+
*/
|
|
597
|
+
declare class PendingInviteSummary implements Identifiable9<string> {
|
|
598
|
+
id: string | null;
|
|
599
|
+
/** Email the invitation was sent to. */
|
|
600
|
+
email: string;
|
|
601
|
+
/** Display name the inviter entered, if any. */
|
|
602
|
+
displayName: string | null;
|
|
603
|
+
/** The application the invitee would join; null for an organization-member invite. */
|
|
604
|
+
applicationId: string | null;
|
|
605
|
+
/** Display name of the member who sent the invitation. */
|
|
606
|
+
invitedByName: string | null;
|
|
607
|
+
created: number | null;
|
|
608
|
+
/** When the invitation stops being acceptable. */
|
|
609
|
+
expiresAt: number | null;
|
|
610
|
+
}
|
|
611
|
+
import { Identifiable as Identifiable10 } from "@kinotic-ai/core";
|
|
612
|
+
/**
|
|
588
613
|
* Persisted record of one GitHub App installation that a Kinotic Org has authorised.
|
|
589
614
|
* The durable binding that says "Org X has access to GitHub install Y" — without it,
|
|
590
615
|
* no installation token can be minted on behalf of the org and webhook deliveries
|
|
591
616
|
* can't be matched to a project.
|
|
592
617
|
*/
|
|
593
|
-
declare class GitHubAppInstallation implements
|
|
618
|
+
declare class GitHubAppInstallation implements Identifiable10<string> {
|
|
594
619
|
id: string | null;
|
|
595
620
|
organizationId: string;
|
|
596
621
|
githubInstallationId: number;
|
|
@@ -696,6 +721,78 @@ declare class KinoticProjectConfig {
|
|
|
696
721
|
*/
|
|
697
722
|
validate?: boolean;
|
|
698
723
|
}
|
|
724
|
+
/**
|
|
725
|
+
* Identifies which scope layer a participant authenticated against. The server serializes this as
|
|
726
|
+
* the {@code type} discriminator on a participant, and it is used to narrow a base
|
|
727
|
+
* {@code IParticipant} to one of the scope-typed participant interfaces.
|
|
728
|
+
*/
|
|
729
|
+
declare enum ParticipantType {
|
|
730
|
+
SYSTEM = "system",
|
|
731
|
+
ORGANIZATION = "organization",
|
|
732
|
+
APPLICATION = "application"
|
|
733
|
+
}
|
|
734
|
+
import { IParticipant } from "@kinotic-ai/core";
|
|
735
|
+
/**
|
|
736
|
+
* A participant authenticated against the platform SYSTEM scope — a platform operator with no
|
|
737
|
+
* organization or application context. Mirrors the server {@code SystemParticipant}.
|
|
738
|
+
*/
|
|
739
|
+
interface ISystemParticipant extends IParticipant {
|
|
740
|
+
type: ParticipantType.SYSTEM;
|
|
741
|
+
}
|
|
742
|
+
import { IParticipant as IParticipant2 } from "@kinotic-ai/core";
|
|
743
|
+
/**
|
|
744
|
+
* A participant authenticated against an Organization, carrying ORGANIZATION-scope authority over
|
|
745
|
+
* that Organization's resources. {@link organizationId} is the id of the owning Organization and
|
|
746
|
+
* is never null. Mirrors the server {@code OrganizationParticipant}.
|
|
747
|
+
*/
|
|
748
|
+
interface IOrganizationParticipant extends IParticipant2 {
|
|
749
|
+
type: ParticipantType.ORGANIZATION;
|
|
750
|
+
/**
|
|
751
|
+
* The id of the Organization this participant is authenticated under; never null.
|
|
752
|
+
*/
|
|
753
|
+
organizationId: string;
|
|
754
|
+
}
|
|
755
|
+
import { IParticipant as IParticipant3 } from "@kinotic-ai/core";
|
|
756
|
+
/**
|
|
757
|
+
* A participant authenticated against an Application, carrying APPLICATION-scope authority over
|
|
758
|
+
* that Application's own resources and end-user data. {@link organizationId} is the id of the
|
|
759
|
+
* Organization that owns the Application; it identifies the owning org for data ownership and
|
|
760
|
+
* routing of the Application's entity definitions and end-user data, and is never null.
|
|
761
|
+
* Mirrors the server {@code ApplicationParticipant}.
|
|
762
|
+
*/
|
|
763
|
+
interface IApplicationParticipant extends IParticipant3 {
|
|
764
|
+
type: ParticipantType.APPLICATION;
|
|
765
|
+
/**
|
|
766
|
+
* The id of the Organization that owns the Application this participant is authenticated
|
|
767
|
+
* under; never null.
|
|
768
|
+
*/
|
|
769
|
+
organizationId: string;
|
|
770
|
+
/**
|
|
771
|
+
* The id of the Application this participant is authenticated under; never null.
|
|
772
|
+
*/
|
|
773
|
+
applicationId: string;
|
|
774
|
+
/**
|
|
775
|
+
* The tenant slice of the Application's end-user data this participant belongs to, or null
|
|
776
|
+
* when the Application is not multi-tenant.
|
|
777
|
+
*/
|
|
778
|
+
tenantId?: string | null;
|
|
779
|
+
}
|
|
780
|
+
import { IParticipant as IParticipant4 } from "@kinotic-ai/core";
|
|
781
|
+
/**
|
|
782
|
+
* @return true if the participant authenticated against the platform SYSTEM scope
|
|
783
|
+
*/
|
|
784
|
+
declare function isSystemParticipant(participant: IParticipant4): participant is ISystemParticipant;
|
|
785
|
+
/**
|
|
786
|
+
* Narrows to an {@link IOrganizationParticipant}, which carries an {@code organizationId} and
|
|
787
|
+
* ORGANIZATION-scope authority.
|
|
788
|
+
*
|
|
789
|
+
* @return true if the participant authenticated against an Organization
|
|
790
|
+
*/
|
|
791
|
+
declare function isOrganizationParticipant(participant: IParticipant4): participant is IOrganizationParticipant;
|
|
792
|
+
/**
|
|
793
|
+
* @return true if the participant authenticated against an Application
|
|
794
|
+
*/
|
|
795
|
+
declare function isApplicationParticipant(participant: IParticipant4): participant is IApplicationParticipant;
|
|
699
796
|
import { IKinotic } from "@kinotic-ai/core";
|
|
700
797
|
import { CrudServiceProxy, ICrudServiceProxy } from "@kinotic-ai/core";
|
|
701
798
|
interface IApplicationService extends ICrudServiceProxy<Application> {
|
|
@@ -1015,46 +1112,55 @@ declare class WorkloadServiceProxy extends CrudServiceProxy7<Workload> implement
|
|
|
1015
1112
|
countForNode(nodeId: string): Promise<number>;
|
|
1016
1113
|
syncIndex(): Promise<void>;
|
|
1017
1114
|
}
|
|
1018
|
-
import {
|
|
1115
|
+
import { IDataSource, IKinotic as IKinotic11, IterablePage as IterablePage4, Pageable as Pageable4 } from "@kinotic-ai/core";
|
|
1019
1116
|
/**
|
|
1020
|
-
*
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1023
|
-
*
|
|
1024
|
-
* the service. The shape here is kept in sync so it is ready once that happens; confirm the
|
|
1025
|
-
* published namespace before relying on it.
|
|
1117
|
+
* Member management for the caller's organization and its applications. Scope is selected
|
|
1118
|
+
* with applicationId — null addresses org members, set addresses that application's
|
|
1119
|
+
* members — and the backend derives the organization from the authenticated participant,
|
|
1120
|
+
* so it is never a parameter.
|
|
1026
1121
|
*/
|
|
1027
|
-
interface
|
|
1028
|
-
/**
|
|
1029
|
-
|
|
1122
|
+
interface IMemberService {
|
|
1123
|
+
/** Lists the members of the scope. */
|
|
1124
|
+
findMembers(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1030
1125
|
/**
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
1033
|
-
* both set → APPLICATION.
|
|
1126
|
+
* Searches the scope's members by free text over email and display name. Blank
|
|
1127
|
+
* searchText is equivalent to {@link findMembers}.
|
|
1034
1128
|
*/
|
|
1035
|
-
|
|
1129
|
+
searchMembers(searchText: string, applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1036
1130
|
/**
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1131
|
+
* Invites someone into the scope by email. Sends the invitation email and returns the
|
|
1132
|
+
* pending invitation. Rejects when the email already has an account in the scope or an
|
|
1133
|
+
* invitation is already pending for it.
|
|
1039
1134
|
*/
|
|
1040
|
-
|
|
1135
|
+
inviteMember(email: string, displayName: string | null, applicationId: string | null): Promise<PendingInviteSummary>;
|
|
1041
1136
|
/**
|
|
1042
|
-
*
|
|
1043
|
-
*
|
|
1137
|
+
* Enables or disables a member of the caller's organization. Disabling gates future
|
|
1138
|
+
* logins; established sessions last until they expire. Callers cannot disable themselves.
|
|
1044
1139
|
*/
|
|
1045
|
-
|
|
1046
|
-
/**
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1140
|
+
setMemberEnabled(userId: string, enabled: boolean): Promise<void>;
|
|
1141
|
+
/**
|
|
1142
|
+
* Permanently removes a member of the caller's organization, including any stored
|
|
1143
|
+
* credential. Callers cannot remove themselves.
|
|
1144
|
+
*/
|
|
1145
|
+
removeMember(userId: string): Promise<void>;
|
|
1146
|
+
/** Lists the scope's live (unexpired) pending invitations. */
|
|
1147
|
+
findPendingInvites(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<PendingInviteSummary>>;
|
|
1148
|
+
/** Cancels a pending invitation belonging to the caller's organization. */
|
|
1149
|
+
cancelInvite(inviteId: string): Promise<void>;
|
|
1150
|
+
/** An {@link IDataSource} over the scope's members, for table components. */
|
|
1151
|
+
memberDataSource(applicationId: string | null): IDataSource<IamUser>;
|
|
1050
1152
|
}
|
|
1051
|
-
declare class
|
|
1153
|
+
declare class MemberService implements IMemberService {
|
|
1154
|
+
private readonly serviceProxy;
|
|
1052
1155
|
constructor(kinotic: IKinotic11);
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1156
|
+
findMembers(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1157
|
+
searchMembers(searchText: string, applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<IamUser>>;
|
|
1158
|
+
inviteMember(email: string, displayName: string | null, applicationId: string | null): Promise<PendingInviteSummary>;
|
|
1159
|
+
setMemberEnabled(userId: string, enabled: boolean): Promise<void>;
|
|
1160
|
+
removeMember(userId: string): Promise<void>;
|
|
1161
|
+
findPendingInvites(applicationId: string | null, pageable: Pageable4): Promise<IterablePage4<PendingInviteSummary>>;
|
|
1162
|
+
cancelInvite(inviteId: string): Promise<void>;
|
|
1163
|
+
memberDataSource(applicationId: string | null): IDataSource<IamUser>;
|
|
1058
1164
|
}
|
|
1059
1165
|
import { IKinotic as IKinotic12 } from "@kinotic-ai/core";
|
|
1060
1166
|
/**
|
|
@@ -1074,8 +1180,8 @@ declare class DeviceApprovalService implements IDeviceApprovalService {
|
|
|
1074
1180
|
constructor(kinotic: IKinotic12);
|
|
1075
1181
|
approve(userCode: string): Promise<void>;
|
|
1076
1182
|
}
|
|
1077
|
-
import { CrudServiceProxy as
|
|
1078
|
-
interface IGitHubAppInstallationService extends
|
|
1183
|
+
import { CrudServiceProxy as CrudServiceProxy8, IKinotic as IKinotic13, ICrudServiceProxy as ICrudServiceProxy8 } from "@kinotic-ai/core";
|
|
1184
|
+
interface IGitHubAppInstallationService extends ICrudServiceProxy8<GitHubAppInstallation> {
|
|
1079
1185
|
/**
|
|
1080
1186
|
* Stages a single-use state token bound to the caller's organization plus the
|
|
1081
1187
|
* supplied returnTo, then returns the GitHub install URL with that state
|
|
@@ -1100,7 +1206,7 @@ interface IGitHubAppInstallationService extends ICrudServiceProxy9<GitHubAppInst
|
|
|
1100
1206
|
*/
|
|
1101
1207
|
findForCurrentOrg(): Promise<GitHubAppInstallation | null>;
|
|
1102
1208
|
}
|
|
1103
|
-
declare class GitHubAppInstallationService extends
|
|
1209
|
+
declare class GitHubAppInstallationService extends CrudServiceProxy8<GitHubAppInstallation> implements IGitHubAppInstallationService {
|
|
1104
1210
|
constructor(kinotic: IKinotic13);
|
|
1105
1211
|
startInstall(returnTo: string | null): Promise<string>;
|
|
1106
1212
|
completeInstall(installationId: number, state: string): Promise<GitHubInstallCompletion>;
|
|
@@ -1118,7 +1224,7 @@ interface IOsApiExtension {
|
|
|
1118
1224
|
dataInsights: IDataInsightsService;
|
|
1119
1225
|
vmNodes: IVmNodeService;
|
|
1120
1226
|
workloads: IWorkloadService;
|
|
1121
|
-
|
|
1227
|
+
members: IMemberService;
|
|
1122
1228
|
deviceApproval: IDeviceApprovalService;
|
|
1123
1229
|
githubAppInstallations: IGitHubAppInstallationService;
|
|
1124
1230
|
}
|
|
@@ -1126,4 +1232,4 @@ declare const OsApiPlugin: KinoticPlugin<IOsApiExtension>;
|
|
|
1126
1232
|
declare module "@kinotic-ai/core" {
|
|
1127
1233
|
interface KinoticSingleton extends IOsApiExtension {}
|
|
1128
1234
|
}
|
|
1129
|
-
export { WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PageableC3Type, PageC3Type, OsApiPlugin, OrganizationService, Organization, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, KinoticProjectConfig, InsightRequest, InsightProgress, IdDecorator,
|
|
1235
|
+
export { isSystemParticipant, isOrganizationParticipant, isApplicationParticipant, WorkloadStatus, WorkloadServiceProxy, Workload, VmProviderType, VmNodeStatus, VmNodeServiceProxy, VmNode, VersionDecorator, TimeReferenceDecorator, TextDecorator, TenantSelectionC3Type, TenantIdDecorator, SingleLoggerLevelsDescriptor, SignUpRequest, SignUpCompleteRequest, QueryOptionsC3Type, QueryDecorator, ProjectType, ProjectService, Project, ProgressType, PendingInviteSummary, ParticipantType, PageableC3Type, PageC3Type, OsApiPlugin, OrganizationService, Organization, NotIndexedDecorator, NestedDecorator, NamedQueriesDefinitionService, NamedQueriesDefinition, MigrationService, MigrationResult, MigrationRequest, MigrationDefinition, MemberService, LoggersDescriptor, LoggerLevelsDescriptor, LogManager, LogLevel, KinoticProjectConfig, InsightRequest, InsightProgress, IdDecorator, IamUser, IWorkloadService, IVmNodeService, ISystemParticipant, IProjectService, IOsApiExtension, IOrganizationService, IOrganizationParticipant, INamedQueriesDefinitionService, IMigrationService, IMemberService, ILogManager, IGitHubAppInstallationService, IEntityDefinitionService, IDeviceApprovalService, IDataInsightsService, IApplicationService, IApplicationParticipant, GroupLoggerLevelsDescriptor, GitHubToken, GitHubRepoToken, GitHubInstallCompletion, GitHubAppInstallationService, GitHubAppInstallation, FlattenedDecorator, EsIndexConfigurationDecorator, EntityDefinitionService, EntityDefinition, EntityDecorator, EntitiesPathConfig, DiscriminatorDecorator, DeviceApprovalService, DataInsightsService, DataInsightsComponent, CompleteOrgRequest, AutoGeneratedIdDecorator, AuthType, ApplicationService, Application };
|
package/dist/index.js
CHANGED
|
@@ -178,6 +178,7 @@ class Application {
|
|
|
178
178
|
id;
|
|
179
179
|
organizationId;
|
|
180
180
|
description;
|
|
181
|
+
tenantPerUser = false;
|
|
181
182
|
updated = null;
|
|
182
183
|
constructor(id, description) {
|
|
183
184
|
this.id = id;
|
|
@@ -356,6 +357,16 @@ class IamUser {
|
|
|
356
357
|
created = null;
|
|
357
358
|
updated = null;
|
|
358
359
|
}
|
|
360
|
+
// packages/os-api/src/api/model/iam/PendingInviteSummary.ts
|
|
361
|
+
class PendingInviteSummary {
|
|
362
|
+
id = null;
|
|
363
|
+
email = "";
|
|
364
|
+
displayName = null;
|
|
365
|
+
applicationId = null;
|
|
366
|
+
invitedByName = null;
|
|
367
|
+
created = null;
|
|
368
|
+
expiresAt = null;
|
|
369
|
+
}
|
|
359
370
|
// packages/os-api/src/api/model/github/GitHubAppInstallation.ts
|
|
360
371
|
class GitHubAppInstallation {
|
|
361
372
|
id = null;
|
|
@@ -393,6 +404,26 @@ class KinoticProjectConfig {
|
|
|
393
404
|
fileExtensionForImports = ".js";
|
|
394
405
|
validate;
|
|
395
406
|
}
|
|
407
|
+
// packages/os-api/src/api/security/ParticipantType.ts
|
|
408
|
+
var ParticipantType;
|
|
409
|
+
((ParticipantType2) => {
|
|
410
|
+
ParticipantType2["SYSTEM"] = "system";
|
|
411
|
+
ParticipantType2["ORGANIZATION"] = "organization";
|
|
412
|
+
ParticipantType2["APPLICATION"] = "application";
|
|
413
|
+
})(ParticipantType ||= {});
|
|
414
|
+
// packages/os-api/src/api/security/ParticipantGuards.ts
|
|
415
|
+
function scopeType(participant) {
|
|
416
|
+
return participant.type;
|
|
417
|
+
}
|
|
418
|
+
function isSystemParticipant(participant) {
|
|
419
|
+
return scopeType(participant) === "system" /* SYSTEM */;
|
|
420
|
+
}
|
|
421
|
+
function isOrganizationParticipant(participant) {
|
|
422
|
+
return scopeType(participant) === "organization" /* ORGANIZATION */;
|
|
423
|
+
}
|
|
424
|
+
function isApplicationParticipant(participant) {
|
|
425
|
+
return scopeType(participant) === "application" /* APPLICATION */;
|
|
426
|
+
}
|
|
396
427
|
// packages/os-api/src/api/services/IApplicationService.ts
|
|
397
428
|
import { CrudServiceProxy } from "@kinotic-ai/core";
|
|
398
429
|
|
|
@@ -609,27 +640,45 @@ class WorkloadServiceProxy extends CrudServiceProxy7 {
|
|
|
609
640
|
return this.serviceProxy.invoke("syncIndex", []);
|
|
610
641
|
}
|
|
611
642
|
}
|
|
612
|
-
// packages/os-api/src/api/services/
|
|
613
|
-
import {
|
|
643
|
+
// packages/os-api/src/api/services/IMemberService.ts
|
|
644
|
+
import {
|
|
645
|
+
FunctionalIterablePage as FunctionalIterablePage4
|
|
646
|
+
} from "@kinotic-ai/core";
|
|
614
647
|
|
|
615
|
-
class
|
|
648
|
+
class MemberService {
|
|
649
|
+
serviceProxy;
|
|
616
650
|
constructor(kinotic) {
|
|
617
|
-
|
|
651
|
+
this.serviceProxy = kinotic.serviceProxy("org.kinotic.os.api.services.iam.MemberService");
|
|
652
|
+
}
|
|
653
|
+
async findMembers(applicationId, pageable) {
|
|
654
|
+
const page = await this.serviceProxy.invoke("findMembers", [applicationId, pageable]);
|
|
655
|
+
return new FunctionalIterablePage4(pageable, page, (next) => this.serviceProxy.invoke("findMembers", [applicationId, next]));
|
|
656
|
+
}
|
|
657
|
+
async searchMembers(searchText, applicationId, pageable) {
|
|
658
|
+
const page = await this.serviceProxy.invoke("searchMembers", [searchText, applicationId, pageable]);
|
|
659
|
+
return new FunctionalIterablePage4(pageable, page, (next) => this.serviceProxy.invoke("searchMembers", [searchText, applicationId, next]));
|
|
618
660
|
}
|
|
619
|
-
|
|
620
|
-
return
|
|
661
|
+
inviteMember(email, displayName, applicationId) {
|
|
662
|
+
return this.serviceProxy.invoke("inviteMember", [email, displayName, applicationId]);
|
|
621
663
|
}
|
|
622
|
-
|
|
623
|
-
return this.serviceProxy.invoke("
|
|
664
|
+
setMemberEnabled(userId, enabled) {
|
|
665
|
+
return this.serviceProxy.invoke("setMemberEnabled", [userId, enabled]);
|
|
624
666
|
}
|
|
625
|
-
|
|
626
|
-
return this.serviceProxy.invoke("
|
|
667
|
+
removeMember(userId) {
|
|
668
|
+
return this.serviceProxy.invoke("removeMember", [userId]);
|
|
627
669
|
}
|
|
628
|
-
|
|
629
|
-
|
|
670
|
+
async findPendingInvites(applicationId, pageable) {
|
|
671
|
+
const page = await this.serviceProxy.invoke("findPendingInvites", [applicationId, pageable]);
|
|
672
|
+
return new FunctionalIterablePage4(pageable, page, (next) => this.serviceProxy.invoke("findPendingInvites", [applicationId, next]));
|
|
630
673
|
}
|
|
631
|
-
|
|
632
|
-
return this.serviceProxy.invoke("
|
|
674
|
+
cancelInvite(inviteId) {
|
|
675
|
+
return this.serviceProxy.invoke("cancelInvite", [inviteId]);
|
|
676
|
+
}
|
|
677
|
+
memberDataSource(applicationId) {
|
|
678
|
+
return {
|
|
679
|
+
findAll: (pageable) => this.findMembers(applicationId, pageable),
|
|
680
|
+
search: (searchText, pageable) => this.searchMembers(searchText, applicationId, pageable)
|
|
681
|
+
};
|
|
633
682
|
}
|
|
634
683
|
}
|
|
635
684
|
// packages/os-api/src/api/services/IDeviceApprovalService.ts
|
|
@@ -643,9 +692,9 @@ class DeviceApprovalService {
|
|
|
643
692
|
}
|
|
644
693
|
}
|
|
645
694
|
// packages/os-api/src/api/services/IGitHubAppInstallationService.ts
|
|
646
|
-
import { CrudServiceProxy as
|
|
695
|
+
import { CrudServiceProxy as CrudServiceProxy8 } from "@kinotic-ai/core";
|
|
647
696
|
|
|
648
|
-
class GitHubAppInstallationService extends
|
|
697
|
+
class GitHubAppInstallationService extends CrudServiceProxy8 {
|
|
649
698
|
constructor(kinotic) {
|
|
650
699
|
super(kinotic.serviceProxy("org.kinotic.github.api.services.GitHubAppInstallationService"));
|
|
651
700
|
}
|
|
@@ -673,13 +722,16 @@ var OsApiPlugin = {
|
|
|
673
722
|
dataInsights: new DataInsightsService(kinotic),
|
|
674
723
|
vmNodes: new VmNodeServiceProxy(kinotic),
|
|
675
724
|
workloads: new WorkloadServiceProxy(kinotic),
|
|
676
|
-
|
|
725
|
+
members: new MemberService(kinotic),
|
|
677
726
|
deviceApproval: new DeviceApprovalService(kinotic),
|
|
678
727
|
githubAppInstallations: new GitHubAppInstallationService(kinotic)
|
|
679
728
|
};
|
|
680
729
|
}
|
|
681
730
|
};
|
|
682
731
|
export {
|
|
732
|
+
isSystemParticipant,
|
|
733
|
+
isOrganizationParticipant,
|
|
734
|
+
isApplicationParticipant,
|
|
683
735
|
WorkloadStatus,
|
|
684
736
|
WorkloadServiceProxy,
|
|
685
737
|
Workload,
|
|
@@ -699,6 +751,8 @@ export {
|
|
|
699
751
|
ProjectService,
|
|
700
752
|
Project,
|
|
701
753
|
ProgressType,
|
|
754
|
+
PendingInviteSummary,
|
|
755
|
+
ParticipantType,
|
|
702
756
|
PageableC3Type,
|
|
703
757
|
PageC3Type,
|
|
704
758
|
OsApiPlugin,
|
|
@@ -709,13 +763,13 @@ export {
|
|
|
709
763
|
NamedQueriesDefinitionService,
|
|
710
764
|
NamedQueriesDefinition,
|
|
711
765
|
MigrationService,
|
|
766
|
+
MemberService,
|
|
712
767
|
LoggersDescriptor,
|
|
713
768
|
LoggerLevelsDescriptor,
|
|
714
769
|
LogManager,
|
|
715
770
|
LogLevel,
|
|
716
771
|
KinoticProjectConfig,
|
|
717
772
|
IdDecorator,
|
|
718
|
-
IamUserService,
|
|
719
773
|
IamUser,
|
|
720
774
|
GroupLoggerLevelsDescriptor,
|
|
721
775
|
GitHubToken,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kinotic-ai/os-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"ui-test": "vitest --ui --coverage.enabled=true --mode development"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@kinotic-ai/core": ">=1.
|
|
36
|
+
"@kinotic-ai/core": ">=1.6.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@kinotic-ai/idl": "1.0.9",
|
|
40
|
-
"@kinotic-ai/persistence": "1.3.
|
|
40
|
+
"@kinotic-ai/persistence": "1.3.1",
|
|
41
41
|
"rxjs": "^7.8.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@kinotic-ai/core": "1.
|
|
44
|
+
"@kinotic-ai/core": "1.6.2",
|
|
45
45
|
"@types/node": "^25.3.2",
|
|
46
46
|
"@vitest/coverage-v8": "^4.0.18",
|
|
47
47
|
"@vitest/runner": "^4.0.18",
|