Skip to content

Commit a7e2c62

Browse files
authored
Update Outbound app token schema (#546)
1 parent c43f7b5 commit a7e2c62

File tree

5 files changed

+140
-9
lines changed

5 files changed

+140
-9
lines changed

examples/managementCli/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,35 @@ $ npm run start -- tenant-delete <tenant-id>
101101
# Load all tenants
102102
$ npm run start -- tenant-all
103103

104+
## Outbound application
105+
106+
# Create outbound application
107+
$ npm run start -- outbound-application-create <name>
108+
109+
# Update outbound application
110+
$ npm run start -- outbound-application-update <id> <name>
111+
112+
# Load outbound application
113+
$ npm run start -- outbound-application-load <id>
114+
115+
# Load all outbound applications
116+
$ npm run start -- outbound-application-load-all
117+
118+
# Delete outbound application
119+
$ npm run start -- outbound-application-delete <id>
120+
121+
# Fetch outbound application token
122+
$ npm run start -- outbound-application-fetch-token <app-id> <user-id>
123+
124+
# Fetch outbound application token by scopes
125+
$ npm run start -- outbound-application-fetch-token-by-scopes <app-id> <user-id> <scopes>
126+
127+
# Fetch tenant token
128+
$ npm run start -- outbound-application-fetch-tenant-token <app-id> <tenant-id>
129+
130+
# Fetch tenant token by scopes
131+
$ npm run start -- outbound-application-fetch-tenant-token-by-scopes <app-id> <tenant-id> <scopes>
132+
104133
## SSO application
105134

106135
# Create a OIDC sso application

examples/managementCli/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/managementCli/src/index.ts

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,99 @@ program
578578
handleSdkRes(await sdk.management.inboundApplication.deleteConsents({ appId }));
579579
});
580580

581+
// *** Outbound application commands ***
582+
583+
// outbound-application-create
584+
program
585+
.command('outbound-application-create')
586+
.description('Create a new outbound application')
587+
.argument('<name>', 'Outbound application name')
588+
.action(async (name) => {
589+
handleSdkRes(await sdk.management.outboundApplication.createApplication({ name }));
590+
});
591+
592+
// outbound-application-update
593+
program
594+
.command('outbound-application-update')
595+
.description('Update an outbound application')
596+
.argument('<id>', 'Outbound application ID')
597+
.argument('<name>', 'Outbound application name')
598+
.action(async (id, name) => {
599+
handleSdkRes(await sdk.management.outboundApplication.updateApplication({ id, name }));
600+
});
601+
602+
// outbound-application-load
603+
program
604+
.command('outbound-application-load')
605+
.description('Load outbound application by id')
606+
.argument('<id>', 'Outbound application ID')
607+
.action(async (id) => {
608+
handleSdkRes(await sdk.management.outboundApplication.loadApplication(id));
609+
});
610+
611+
// outbound-application-load-all
612+
program
613+
.command('outbound-application-load-all')
614+
.description('Load all outbound applications')
615+
.action(async () => {
616+
handleSdkRes(await sdk.management.outboundApplication.loadAllApplications());
617+
});
618+
619+
// outbound-application-delete
620+
program
621+
.command('outbound-application-delete')
622+
.description('Delete an outbound application')
623+
.argument('<id>', 'Outbound application ID')
624+
.action(async (id) => {
625+
handleSdkRes(await sdk.management.outboundApplication.deleteApplication(id));
626+
});
627+
628+
// outbound-application-fetch-token
629+
program
630+
.command('outbound-application-fetch-token')
631+
.description('Fetch token for an outbound application')
632+
.argument('<app-id>', 'Outbound application ID')
633+
.argument('<user-id>', 'User ID')
634+
.action(async (appId, userId) => {
635+
handleSdkRes(await sdk.management.outboundApplication.fetchToken(appId, userId));
636+
});
637+
638+
// outbound-application-fetch-token-by-scopes
639+
program
640+
.command('outbound-application-fetch-token-by-scopes')
641+
.description('Fetch token by scopes for an outbound application')
642+
.argument('<app-id>', 'Outbound application ID')
643+
.argument('<user-id>', 'User ID')
644+
.argument('<scopes>', 'Scopes to fetch token for', (val) => val?.split(','))
645+
.action(async (appId, userId, scopes) => {
646+
handleSdkRes(
647+
await sdk.management.outboundApplication.fetchTokenByScopes(appId, userId, scopes),
648+
);
649+
});
650+
651+
// outbound-application-fetch-tenant-token
652+
program
653+
.command('outbound-application-fetch-tenant-token')
654+
.description('Fetch token for an outbound application for a tenant')
655+
.argument('<app-id>', 'Outbound application ID')
656+
.argument('<tenant-id>', 'Tenant ID')
657+
.action(async (appId, tenantId) => {
658+
handleSdkRes(await sdk.management.outboundApplication.fetchTenantToken(appId, tenantId));
659+
});
660+
661+
// outbound-application-fetch-tenant-token-by-scopes
662+
program
663+
.command('outbound-application-fetch-tenant-token-by-scopes')
664+
.description('Fetch token by scopes for an outbound application for a tenant')
665+
.argument('<app-id>', 'Outbound application ID')
666+
.argument('<tenant-id>', 'Tenant ID')
667+
.argument('<scopes>', 'Scopes to fetch token for', (val) => val?.split(','))
668+
.action(async (appId, tenantId, scopes) => {
669+
handleSdkRes(
670+
await sdk.management.outboundApplication.fetchTenantTokenByScopes(appId, tenantId, scopes),
671+
);
672+
});
673+
581674
// *** SSO application commands ***
582675

583676
// sso-application-create-oidc

lib/management/outboundapplication.test.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,15 @@ const mockAllOutboundApplicationsResponse = {
3434
};
3535

3636
const mockOutboundAppToken: OutboundAppToken = {
37-
token: 'mock-access-token',
37+
id: 'mock-token-id',
38+
appId: 'mock-app-id',
39+
userId: 'mock-user-id',
40+
accessToken: 'mock-access-token',
3841
refreshToken: 'mock-refresh-token',
39-
expiresIn: 3600,
40-
tokenType: 'Bearer',
42+
hasRefreshToken: true,
43+
accessTokenExpiry: 3600,
4144
scopes: ['read', 'write'],
45+
grantedBy: 'mock-granted-by',
4246
};
4347

4448
const mockFetchTokenResponse = {

lib/management/types.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -958,11 +958,16 @@ export type FetchOutboundAppTokenOptions = {
958958
};
959959

960960
export type OutboundAppToken = {
961-
token: string;
961+
id: string;
962+
appId: string;
963+
userId: string;
964+
tenantId?: string;
965+
accessToken: string;
966+
accessTokenExpiry?: number;
962967
refreshToken?: string;
963-
expiresIn?: number;
964-
tokenType?: string;
968+
hasRefreshToken?: boolean;
965969
scopes?: string[];
970+
grantedBy?: string;
966971
};
967972

968973
export type FetchOutboundAppUserTokenRequest = {

0 commit comments

Comments
 (0)