aimeat 1.26.0 → 1.27.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/README.md +7 -0
- package/dist/.env.example +17 -0
- package/dist/locales/en.json +49 -7
- package/dist/locales/fi.json +56 -14
- package/dist/public/css/components/app-sandbox.css +62 -0
- package/dist/public/css/views/app-grant.css +51 -0
- package/dist/public/css/views/landing.css +8 -2
- package/dist/public/js/app-sandbox.js +83 -0
- package/dist/public/spa.html +16 -1
- package/dist/public/views/app-grant.js +107 -0
- package/dist/public/views/business.js +8 -1
- package/dist/public/views/how-it-works.js +5 -1
- package/dist/public/views/landing.js +83 -76
- package/dist/public/views/profile/access-tab.js +75 -0
- package/dist/scripts/screenshot-worker.d.ts +2 -0
- package/dist/scripts/screenshot-worker.d.ts.map +1 -0
- package/dist/scripts/screenshot-worker.js +14 -0
- package/dist/scripts/screenshot-worker.js.map +1 -0
- package/dist/src/auth/jwt.d.ts +2 -0
- package/dist/src/auth/jwt.d.ts.map +1 -1
- package/dist/src/auth/jwt.js +2 -0
- package/dist/src/auth/jwt.js.map +1 -1
- package/dist/src/auth/middleware.d.ts.map +1 -1
- package/dist/src/auth/middleware.js +6 -2
- package/dist/src/auth/middleware.js.map +1 -1
- package/dist/src/cli/init-wizard.d.ts +7 -3
- package/dist/src/cli/init-wizard.d.ts.map +1 -1
- package/dist/src/cli/init-wizard.js +50 -5
- package/dist/src/cli/init-wizard.js.map +1 -1
- package/dist/src/cli/screenshot-worker.d.ts +2 -0
- package/dist/src/cli/screenshot-worker.d.ts.map +1 -0
- package/dist/src/cli/screenshot-worker.js +156 -0
- package/dist/src/cli/screenshot-worker.js.map +1 -0
- package/dist/src/config.d.ts +17 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +25 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +529 -0
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/generated/prisma-postgres/edge.js +20 -3
- package/dist/src/generated/prisma-postgres/index-browser.js +17 -0
- package/dist/src/generated/prisma-postgres/index.d.ts +1618 -154
- package/dist/src/generated/prisma-postgres/index.js +20 -3
- package/dist/src/generated/prisma-postgres/package.json +1 -1
- package/dist/src/generated/prisma-postgres/schema.prisma +20 -0
- package/dist/src/generated/prisma-postgres/wasm.js +20 -3
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/apps.d.ts +2 -0
- package/dist/src/mcp/apps.d.ts.map +1 -1
- package/dist/src/mcp/apps.js +18 -1
- package/dist/src/mcp/apps.js.map +1 -1
- package/dist/src/mcp/extensions.d.ts +1 -0
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +10 -1
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/middleware/rate-limit.d.ts +10 -0
- package/dist/src/middleware/rate-limit.d.ts.map +1 -1
- package/dist/src/middleware/rate-limit.js +24 -4
- package/dist/src/middleware/rate-limit.js.map +1 -1
- package/dist/src/middleware/subdomain.d.ts +15 -3
- package/dist/src/middleware/subdomain.d.ts.map +1 -1
- package/dist/src/middleware/subdomain.js +35 -12
- package/dist/src/middleware/subdomain.js.map +1 -1
- package/dist/src/routes/admin.js +4 -2
- package/dist/src/routes/admin.js.map +1 -1
- package/dist/src/routes/agent-webhook.d.ts.map +1 -1
- package/dist/src/routes/agent-webhook.js +3 -2
- package/dist/src/routes/agent-webhook.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +32 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -0
- package/dist/src/routes/app-grants.js +257 -0
- package/dist/src/routes/app-grants.js.map +1 -0
- package/dist/src/routes/apps.d.ts +9 -0
- package/dist/src/routes/apps.d.ts.map +1 -1
- package/dist/src/routes/apps.js +127 -2
- package/dist/src/routes/apps.js.map +1 -1
- package/dist/src/routes/extensions.d.ts +2 -0
- package/dist/src/routes/extensions.d.ts.map +1 -1
- package/dist/src/routes/extensions.js +18 -9
- package/dist/src/routes/extensions.js.map +1 -1
- package/dist/src/routes/foundry.d.ts.map +1 -1
- package/dist/src/routes/foundry.js +13 -1
- package/dist/src/routes/foundry.js.map +1 -1
- package/dist/src/routes/generator.d.ts.map +1 -1
- package/dist/src/routes/generator.js +13 -1
- package/dist/src/routes/generator.js.map +1 -1
- package/dist/src/routes/libs.d.ts +6 -0
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +40 -0
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/oauth-login.d.ts +22 -0
- package/dist/src/routes/oauth-login.d.ts.map +1 -0
- package/dist/src/routes/oauth-login.js +219 -0
- package/dist/src/routes/oauth-login.js.map +1 -0
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +1 -0
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +5 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +55 -9
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +16 -0
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts +3 -0
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +19 -2
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +5 -0
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/hooks.js +2 -2
- package/dist/src/services/hooks.js.map +1 -1
- package/dist/src/services/oidc-client.d.ts +3 -0
- package/dist/src/services/oidc-client.d.ts.map +1 -1
- package/dist/src/services/oidc-client.js +17 -2
- package/dist/src/services/oidc-client.js.map +1 -1
- package/dist/src/services/quota.d.ts +14 -1
- package/dist/src/services/quota.d.ts.map +1 -1
- package/dist/src/services/quota.js +28 -1
- package/dist/src/services/quota.js.map +1 -1
- package/dist/src/services/webhook-dispatcher.d.ts.map +1 -1
- package/dist/src/services/webhook-dispatcher.js +3 -2
- package/dist/src/services/webhook-dispatcher.js.map +1 -1
- package/dist/src/storage/interface.d.ts +17 -2
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/interface.js.map +1 -1
- package/dist/src/storage/providers/mongodb/index.d.ts +15 -1
- package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +106 -0
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts +9 -1
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +97 -4
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/identity.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/repos/identity.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/identity.js +10 -4
- package/dist/src/storage/providers/sqlite/repos/identity.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +21 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts +22 -0
- package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -0
- package/dist/src/storage/repositories/app-grant.repository.js +2 -0
- package/dist/src/storage/repositories/app-grant.repository.js.map +1 -0
- package/dist/src/storage/repositories/identity.repository.d.ts +1 -0
- package/dist/src/storage/repositories/identity.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/index.d.ts +1 -0
- package/dist/src/storage/repositories/index.d.ts.map +1 -1
- package/dist/src/utils/env-config.d.ts +5 -2
- package/dist/src/utils/env-config.d.ts.map +1 -1
- package/dist/src/utils/env-config.js +45 -2
- package/dist/src/utils/env-config.js.map +1 -1
- package/dist/src/utils/env-validator.d.ts +6 -3
- package/dist/src/utils/env-validator.d.ts.map +1 -1
- package/dist/src/utils/env-validator.js +14 -3
- package/dist/src/utils/env-validator.js.map +1 -1
- package/dist/src/utils/url-validator.d.ts +15 -0
- package/dist/src/utils/url-validator.d.ts.map +1 -1
- package/dist/src/utils/url-validator.js +120 -30
- package/dist/src/utils/url-validator.js.map +1 -1
- package/dist/static/app-catalog.html +81 -24
- package/package.json +3 -1
- package/prisma/schema.postgres.prisma +20 -0
- package/prisma/schema.prisma +20 -0
|
@@ -617,6 +617,137 @@ export interface paths {
|
|
|
617
617
|
patch?: never;
|
|
618
618
|
trace?: never;
|
|
619
619
|
};
|
|
620
|
+
"/v1/app-grants/authorize": {
|
|
621
|
+
parameters: {
|
|
622
|
+
query?: never;
|
|
623
|
+
header?: never;
|
|
624
|
+
path?: never;
|
|
625
|
+
cookie?: never;
|
|
626
|
+
};
|
|
627
|
+
/**
|
|
628
|
+
* Start an app-grant authorization (OAuth-like, PKCE)
|
|
629
|
+
* @description Entry point of the H-2 app-grant flow. A user-published app (running on the isolated
|
|
630
|
+
* app origin `*.apps.<apex>`) sends the owner's browser here to request scoped access to
|
|
631
|
+
* the owner's data. On valid params the node stores a short-lived pending request and
|
|
632
|
+
* **302-redirects** to the trusted apex consent page (`/v1/app-grant?req=...`) where the
|
|
633
|
+
* owner approves. `code_challenge_method` must be `S256`; `redirect_uri` must be on the
|
|
634
|
+
* app origin (never the apex); `scope` must be drawn from the grantable scope set.
|
|
635
|
+
*/
|
|
636
|
+
get: operations["appGrantAuthorize"];
|
|
637
|
+
put?: never;
|
|
638
|
+
post?: never;
|
|
639
|
+
delete?: never;
|
|
640
|
+
options?: never;
|
|
641
|
+
head?: never;
|
|
642
|
+
patch?: never;
|
|
643
|
+
trace?: never;
|
|
644
|
+
};
|
|
645
|
+
"/v1/app-grants/request/{requestId}": {
|
|
646
|
+
parameters: {
|
|
647
|
+
query?: never;
|
|
648
|
+
header?: never;
|
|
649
|
+
path?: never;
|
|
650
|
+
cookie?: never;
|
|
651
|
+
};
|
|
652
|
+
/**
|
|
653
|
+
* Read a pending app-grant request (for the consent page)
|
|
654
|
+
* @description Returns the requesting app and the exact scopes (with descriptions) for the consent UI to render. Unguessable id; no auth.
|
|
655
|
+
*/
|
|
656
|
+
get: operations["appGrantRequest"];
|
|
657
|
+
put?: never;
|
|
658
|
+
post?: never;
|
|
659
|
+
delete?: never;
|
|
660
|
+
options?: never;
|
|
661
|
+
head?: never;
|
|
662
|
+
patch?: never;
|
|
663
|
+
trace?: never;
|
|
664
|
+
};
|
|
665
|
+
"/v1/app-grants/authorize-consent": {
|
|
666
|
+
parameters: {
|
|
667
|
+
query?: never;
|
|
668
|
+
header?: never;
|
|
669
|
+
path?: never;
|
|
670
|
+
cookie?: never;
|
|
671
|
+
};
|
|
672
|
+
get?: never;
|
|
673
|
+
put?: never;
|
|
674
|
+
/**
|
|
675
|
+
* Approve an app-grant request (owner)
|
|
676
|
+
* @description The owner, authenticated on the apex SPA, approves a pending request. The node mints a
|
|
677
|
+
* single-use authorization code and returns the app's `redirect_url` (carrying the code +
|
|
678
|
+
* state) for the browser to navigate back to the app.
|
|
679
|
+
*/
|
|
680
|
+
post: operations["appGrantConsent"];
|
|
681
|
+
delete?: never;
|
|
682
|
+
options?: never;
|
|
683
|
+
head?: never;
|
|
684
|
+
patch?: never;
|
|
685
|
+
trace?: never;
|
|
686
|
+
};
|
|
687
|
+
"/v1/app-grants/token": {
|
|
688
|
+
parameters: {
|
|
689
|
+
query?: never;
|
|
690
|
+
header?: never;
|
|
691
|
+
path?: never;
|
|
692
|
+
cookie?: never;
|
|
693
|
+
};
|
|
694
|
+
get?: never;
|
|
695
|
+
put?: never;
|
|
696
|
+
/**
|
|
697
|
+
* Exchange an app-grant code or refresh token for a scoped app token
|
|
698
|
+
* @description Called by the app from its own origin (CORS `*`). With `grant_type=authorization_code`
|
|
699
|
+
* (+ PKCE `code_verifier`) the node creates the persistent grant and returns a short-lived
|
|
700
|
+
* **scoped** access JWT (role `app`, the granted scopes, an `app_grant` claim) + a rotating
|
|
701
|
+
* refresh token — never the owner's session. With `grant_type=refresh_token` it rotates the
|
|
702
|
+
* refresh token and re-mints the access JWT. A revoked grant yields `401`.
|
|
703
|
+
*/
|
|
704
|
+
post: operations["appGrantToken"];
|
|
705
|
+
delete?: never;
|
|
706
|
+
options?: never;
|
|
707
|
+
head?: never;
|
|
708
|
+
patch?: never;
|
|
709
|
+
trace?: never;
|
|
710
|
+
};
|
|
711
|
+
"/v1/app-grants": {
|
|
712
|
+
parameters: {
|
|
713
|
+
query?: never;
|
|
714
|
+
header?: never;
|
|
715
|
+
path?: never;
|
|
716
|
+
cookie?: never;
|
|
717
|
+
};
|
|
718
|
+
/**
|
|
719
|
+
* List the apps the owner has granted access to
|
|
720
|
+
* @description Returns active (non-revoked) app grants with their scopes, origin, and last-used time.
|
|
721
|
+
*/
|
|
722
|
+
get: operations["listAppGrants"];
|
|
723
|
+
put?: never;
|
|
724
|
+
post?: never;
|
|
725
|
+
delete?: never;
|
|
726
|
+
options?: never;
|
|
727
|
+
head?: never;
|
|
728
|
+
patch?: never;
|
|
729
|
+
trace?: never;
|
|
730
|
+
};
|
|
731
|
+
"/v1/app-grants/{grantId}": {
|
|
732
|
+
parameters: {
|
|
733
|
+
query?: never;
|
|
734
|
+
header?: never;
|
|
735
|
+
path?: never;
|
|
736
|
+
cookie?: never;
|
|
737
|
+
};
|
|
738
|
+
get?: never;
|
|
739
|
+
put?: never;
|
|
740
|
+
post?: never;
|
|
741
|
+
/**
|
|
742
|
+
* Revoke an app's grant
|
|
743
|
+
* @description Marks the grant revoked and drops its refresh token — the app can no longer refresh (its short access token expires shortly after).
|
|
744
|
+
*/
|
|
745
|
+
delete: operations["revokeAppGrant"];
|
|
746
|
+
options?: never;
|
|
747
|
+
head?: never;
|
|
748
|
+
patch?: never;
|
|
749
|
+
trace?: never;
|
|
750
|
+
};
|
|
620
751
|
"/v1/auth/token/exchange": {
|
|
621
752
|
parameters: {
|
|
622
753
|
query?: never;
|
|
@@ -3797,6 +3928,62 @@ export interface paths {
|
|
|
3797
3928
|
patch: operations["updateSubdomainSite"];
|
|
3798
3929
|
trace?: never;
|
|
3799
3930
|
};
|
|
3931
|
+
"/v1/apps/{owner}/{filename}": {
|
|
3932
|
+
parameters: {
|
|
3933
|
+
query?: never;
|
|
3934
|
+
header?: never;
|
|
3935
|
+
path?: never;
|
|
3936
|
+
cookie?: never;
|
|
3937
|
+
};
|
|
3938
|
+
/**
|
|
3939
|
+
* Download or render a published app
|
|
3940
|
+
* @description Returns the app's HTML. Default (no `mode`) responds with `Content-Disposition: attachment`
|
|
3941
|
+
* (programmatic download — never executed as a page). `mode=inline` returns runnable HTML.
|
|
3942
|
+
*
|
|
3943
|
+
* **H-2 app origin:** when the app origin is provisioned (`AIMEAT_APP_ORIGIN_ENABLED`), an
|
|
3944
|
+
* `mode=inline` request arriving on the **apex** origin is **301-redirected** to the isolated
|
|
3945
|
+
* app origin (`https://<sub>.apps.<apex>/` or `https://apps.<apex>/<owner>/<file>`), so runnable
|
|
3946
|
+
* app HTML is never served same-origin as the authenticated SPA. Access-code/paid apps and the
|
|
3947
|
+
* raw download form are unaffected.
|
|
3948
|
+
*/
|
|
3949
|
+
get: operations["getAppFile"];
|
|
3950
|
+
put?: never;
|
|
3951
|
+
post?: never;
|
|
3952
|
+
delete?: never;
|
|
3953
|
+
options?: never;
|
|
3954
|
+
head?: never;
|
|
3955
|
+
patch?: never;
|
|
3956
|
+
trace?: never;
|
|
3957
|
+
};
|
|
3958
|
+
"/v1/apps/{owner}/{filename}/screenshot": {
|
|
3959
|
+
parameters: {
|
|
3960
|
+
query?: never;
|
|
3961
|
+
header?: never;
|
|
3962
|
+
path: {
|
|
3963
|
+
/** @description Owner name (bare handle; a legacy owner@node segment is tolerated). */
|
|
3964
|
+
owner: string;
|
|
3965
|
+
/** @description App filename. */
|
|
3966
|
+
filename: string;
|
|
3967
|
+
};
|
|
3968
|
+
cookie?: never;
|
|
3969
|
+
};
|
|
3970
|
+
/**
|
|
3971
|
+
* Serve an app's screenshot image
|
|
3972
|
+
* @description Returns the stored screenshot for the app, or 404 if none. No auth.
|
|
3973
|
+
*/
|
|
3974
|
+
get: operations["getAppScreenshot"];
|
|
3975
|
+
put?: never;
|
|
3976
|
+
/**
|
|
3977
|
+
* Set or replace an app's screenshot without re-publishing
|
|
3978
|
+
* @description Stores a base64-encoded image as the app's screenshot. The app's owner may set their own; a node operator may set any app's, so the screenshot worker can backfill defaults for apps that have none. Idempotent (overwrites any existing screenshot). Max 2 MB.
|
|
3979
|
+
*/
|
|
3980
|
+
post: operations["setAppScreenshot"];
|
|
3981
|
+
delete?: never;
|
|
3982
|
+
options?: never;
|
|
3983
|
+
head?: never;
|
|
3984
|
+
patch?: never;
|
|
3985
|
+
trace?: never;
|
|
3986
|
+
};
|
|
3800
3987
|
"/v1/apps/backup": {
|
|
3801
3988
|
parameters: {
|
|
3802
3989
|
query?: never;
|
|
@@ -4514,6 +4701,53 @@ export interface paths {
|
|
|
4514
4701
|
patch?: never;
|
|
4515
4702
|
trace?: never;
|
|
4516
4703
|
};
|
|
4704
|
+
"/v1/ghii/login/google": {
|
|
4705
|
+
parameters: {
|
|
4706
|
+
query?: never;
|
|
4707
|
+
header?: never;
|
|
4708
|
+
path?: never;
|
|
4709
|
+
cookie?: never;
|
|
4710
|
+
};
|
|
4711
|
+
/**
|
|
4712
|
+
* Begin Google sign-in (social login)
|
|
4713
|
+
* @description Starts the Google OIDC sign-in flow and redirects the browser to Google's
|
|
4714
|
+
* consent screen. Available only when the node has Google sign-in configured
|
|
4715
|
+
* (`AIMEAT_GOOGLE_OAUTH_ENABLED=true` + client credentials); otherwise returns 503.
|
|
4716
|
+
* This is a browser-navigation endpoint, not an API call.
|
|
4717
|
+
*/
|
|
4718
|
+
get: operations["ghiiLoginGoogleStart"];
|
|
4719
|
+
put?: never;
|
|
4720
|
+
post?: never;
|
|
4721
|
+
delete?: never;
|
|
4722
|
+
options?: never;
|
|
4723
|
+
head?: never;
|
|
4724
|
+
patch?: never;
|
|
4725
|
+
trace?: never;
|
|
4726
|
+
};
|
|
4727
|
+
"/v1/ghii/login/google/callback": {
|
|
4728
|
+
parameters: {
|
|
4729
|
+
query?: never;
|
|
4730
|
+
header?: never;
|
|
4731
|
+
path?: never;
|
|
4732
|
+
cookie?: never;
|
|
4733
|
+
};
|
|
4734
|
+
/**
|
|
4735
|
+
* Google sign-in OIDC redirect callback
|
|
4736
|
+
* @description Google redirects the browser here with `code` and `state` after consent. The node
|
|
4737
|
+
* exchanges the code, maps the Google identity to a GHII (linking to an existing account
|
|
4738
|
+
* when Google's verified email matches a locally-verified account, otherwise creating a
|
|
4739
|
+
* new account), establishes an owner session (httpOnly refresh cookie + access token),
|
|
4740
|
+
* and redirects back to the SPA. On any failure it redirects to `/?auth_error=<CODE>`.
|
|
4741
|
+
*/
|
|
4742
|
+
get: operations["ghiiLoginGoogleCallback"];
|
|
4743
|
+
put?: never;
|
|
4744
|
+
post?: never;
|
|
4745
|
+
delete?: never;
|
|
4746
|
+
options?: never;
|
|
4747
|
+
head?: never;
|
|
4748
|
+
patch?: never;
|
|
4749
|
+
trace?: never;
|
|
4750
|
+
};
|
|
4517
4751
|
"/v1/catalogue/directory": {
|
|
4518
4752
|
parameters: {
|
|
4519
4753
|
query?: never;
|
|
@@ -14118,6 +14352,123 @@ export interface operations {
|
|
|
14118
14352
|
404: components["responses"]["NotFound"];
|
|
14119
14353
|
};
|
|
14120
14354
|
};
|
|
14355
|
+
appGrantAuthorize: {
|
|
14356
|
+
parameters: {
|
|
14357
|
+
query: {
|
|
14358
|
+
/** @description "owner/filename" */
|
|
14359
|
+
app: string;
|
|
14360
|
+
response_type: "code";
|
|
14361
|
+
redirect_uri: string;
|
|
14362
|
+
/** @description Space/comma-separated grantable scopes */
|
|
14363
|
+
scope: string;
|
|
14364
|
+
state?: string;
|
|
14365
|
+
code_challenge: string;
|
|
14366
|
+
code_challenge_method: "S256";
|
|
14367
|
+
};
|
|
14368
|
+
header?: never;
|
|
14369
|
+
path?: never;
|
|
14370
|
+
cookie?: never;
|
|
14371
|
+
};
|
|
14372
|
+
requestBody?: never;
|
|
14373
|
+
responses: {
|
|
14374
|
+
/** @description Redirect to the apex consent page */
|
|
14375
|
+
302: {
|
|
14376
|
+
headers: {
|
|
14377
|
+
[name: string]: unknown;
|
|
14378
|
+
};
|
|
14379
|
+
content?: never;
|
|
14380
|
+
};
|
|
14381
|
+
400: components["responses"]["BadRequest"];
|
|
14382
|
+
404: components["responses"]["NotFound"];
|
|
14383
|
+
};
|
|
14384
|
+
};
|
|
14385
|
+
appGrantRequest: {
|
|
14386
|
+
parameters: {
|
|
14387
|
+
query?: never;
|
|
14388
|
+
header?: never;
|
|
14389
|
+
path: {
|
|
14390
|
+
requestId: string;
|
|
14391
|
+
};
|
|
14392
|
+
cookie?: never;
|
|
14393
|
+
};
|
|
14394
|
+
requestBody?: never;
|
|
14395
|
+
responses: {
|
|
14396
|
+
200: components["responses"]["AimeatSuccess"];
|
|
14397
|
+
404: components["responses"]["NotFound"];
|
|
14398
|
+
};
|
|
14399
|
+
};
|
|
14400
|
+
appGrantConsent: {
|
|
14401
|
+
parameters: {
|
|
14402
|
+
query?: never;
|
|
14403
|
+
header?: never;
|
|
14404
|
+
path?: never;
|
|
14405
|
+
cookie?: never;
|
|
14406
|
+
};
|
|
14407
|
+
requestBody: {
|
|
14408
|
+
content: {
|
|
14409
|
+
"application/json": {
|
|
14410
|
+
request_id: string;
|
|
14411
|
+
};
|
|
14412
|
+
};
|
|
14413
|
+
};
|
|
14414
|
+
responses: {
|
|
14415
|
+
200: components["responses"]["AimeatSuccess"];
|
|
14416
|
+
401: components["responses"]["Unauthorized"];
|
|
14417
|
+
404: components["responses"]["NotFound"];
|
|
14418
|
+
};
|
|
14419
|
+
};
|
|
14420
|
+
appGrantToken: {
|
|
14421
|
+
parameters: {
|
|
14422
|
+
query?: never;
|
|
14423
|
+
header?: never;
|
|
14424
|
+
path?: never;
|
|
14425
|
+
cookie?: never;
|
|
14426
|
+
};
|
|
14427
|
+
requestBody: {
|
|
14428
|
+
content: {
|
|
14429
|
+
"application/json": {
|
|
14430
|
+
/** @enum {string} */
|
|
14431
|
+
grant_type: "authorization_code" | "refresh_token";
|
|
14432
|
+
code?: string;
|
|
14433
|
+
code_verifier?: string;
|
|
14434
|
+
redirect_uri?: string;
|
|
14435
|
+
refresh_token?: string;
|
|
14436
|
+
};
|
|
14437
|
+
};
|
|
14438
|
+
};
|
|
14439
|
+
responses: {
|
|
14440
|
+
200: components["responses"]["AimeatSuccess"];
|
|
14441
|
+
400: components["responses"]["BadRequest"];
|
|
14442
|
+
401: components["responses"]["Unauthorized"];
|
|
14443
|
+
};
|
|
14444
|
+
};
|
|
14445
|
+
listAppGrants: {
|
|
14446
|
+
parameters: {
|
|
14447
|
+
query?: never;
|
|
14448
|
+
header?: never;
|
|
14449
|
+
path?: never;
|
|
14450
|
+
cookie?: never;
|
|
14451
|
+
};
|
|
14452
|
+
requestBody?: never;
|
|
14453
|
+
responses: {
|
|
14454
|
+
200: components["responses"]["AimeatSuccess"];
|
|
14455
|
+
};
|
|
14456
|
+
};
|
|
14457
|
+
revokeAppGrant: {
|
|
14458
|
+
parameters: {
|
|
14459
|
+
query?: never;
|
|
14460
|
+
header?: never;
|
|
14461
|
+
path: {
|
|
14462
|
+
grantId: string;
|
|
14463
|
+
};
|
|
14464
|
+
cookie?: never;
|
|
14465
|
+
};
|
|
14466
|
+
requestBody?: never;
|
|
14467
|
+
responses: {
|
|
14468
|
+
200: components["responses"]["AimeatSuccess"];
|
|
14469
|
+
404: components["responses"]["NotFound"];
|
|
14470
|
+
};
|
|
14471
|
+
};
|
|
14121
14472
|
exchangeAccessToken: {
|
|
14122
14473
|
parameters: {
|
|
14123
14474
|
query?: never;
|
|
@@ -19150,6 +19501,113 @@ export interface operations {
|
|
|
19150
19501
|
404: components["responses"]["NotFound"];
|
|
19151
19502
|
};
|
|
19152
19503
|
};
|
|
19504
|
+
getAppFile: {
|
|
19505
|
+
parameters: {
|
|
19506
|
+
query?: {
|
|
19507
|
+
mode?: "inline";
|
|
19508
|
+
version?: number;
|
|
19509
|
+
/** @description Access code for protected apps */
|
|
19510
|
+
code?: string;
|
|
19511
|
+
};
|
|
19512
|
+
header?: never;
|
|
19513
|
+
path: {
|
|
19514
|
+
owner: string;
|
|
19515
|
+
filename: string;
|
|
19516
|
+
};
|
|
19517
|
+
cookie?: never;
|
|
19518
|
+
};
|
|
19519
|
+
requestBody?: never;
|
|
19520
|
+
responses: {
|
|
19521
|
+
/** @description App HTML (inline or attachment) */
|
|
19522
|
+
200: {
|
|
19523
|
+
headers: {
|
|
19524
|
+
[name: string]: unknown;
|
|
19525
|
+
};
|
|
19526
|
+
content?: never;
|
|
19527
|
+
};
|
|
19528
|
+
/** @description Redirect to the isolated app origin (H-2 */
|
|
19529
|
+
301: {
|
|
19530
|
+
headers: {
|
|
19531
|
+
[name: string]: unknown;
|
|
19532
|
+
};
|
|
19533
|
+
content?: never;
|
|
19534
|
+
};
|
|
19535
|
+
403: components["responses"]["Forbidden"];
|
|
19536
|
+
404: components["responses"]["NotFound"];
|
|
19537
|
+
};
|
|
19538
|
+
};
|
|
19539
|
+
getAppScreenshot: {
|
|
19540
|
+
parameters: {
|
|
19541
|
+
query?: never;
|
|
19542
|
+
header?: never;
|
|
19543
|
+
path: {
|
|
19544
|
+
/** @description Owner name (bare handle; a legacy owner@node segment is tolerated). */
|
|
19545
|
+
owner: string;
|
|
19546
|
+
/** @description App filename. */
|
|
19547
|
+
filename: string;
|
|
19548
|
+
};
|
|
19549
|
+
cookie?: never;
|
|
19550
|
+
};
|
|
19551
|
+
requestBody?: never;
|
|
19552
|
+
responses: {
|
|
19553
|
+
/** @description Screenshot image bytes */
|
|
19554
|
+
200: {
|
|
19555
|
+
headers: {
|
|
19556
|
+
[name: string]: unknown;
|
|
19557
|
+
};
|
|
19558
|
+
content: {
|
|
19559
|
+
"image/png": string;
|
|
19560
|
+
};
|
|
19561
|
+
};
|
|
19562
|
+
400: components["responses"]["BadRequest"];
|
|
19563
|
+
404: components["responses"]["NotFound"];
|
|
19564
|
+
};
|
|
19565
|
+
};
|
|
19566
|
+
setAppScreenshot: {
|
|
19567
|
+
parameters: {
|
|
19568
|
+
query?: never;
|
|
19569
|
+
header?: never;
|
|
19570
|
+
path: {
|
|
19571
|
+
/** @description Owner name (bare handle; a legacy owner@node segment is tolerated). */
|
|
19572
|
+
owner: string;
|
|
19573
|
+
/** @description App filename. */
|
|
19574
|
+
filename: string;
|
|
19575
|
+
};
|
|
19576
|
+
cookie?: never;
|
|
19577
|
+
};
|
|
19578
|
+
requestBody: {
|
|
19579
|
+
content: {
|
|
19580
|
+
"application/json": {
|
|
19581
|
+
/** @description Base64-encoded image data (PNG or JPEG). */
|
|
19582
|
+
screenshot: string;
|
|
19583
|
+
/** @default image/png */
|
|
19584
|
+
screenshot_mime_type?: string;
|
|
19585
|
+
};
|
|
19586
|
+
};
|
|
19587
|
+
};
|
|
19588
|
+
responses: {
|
|
19589
|
+
/** @description Screenshot stored */
|
|
19590
|
+
200: {
|
|
19591
|
+
headers: {
|
|
19592
|
+
[name: string]: unknown;
|
|
19593
|
+
};
|
|
19594
|
+
content: {
|
|
19595
|
+
"application/json": Record<string, never>;
|
|
19596
|
+
};
|
|
19597
|
+
};
|
|
19598
|
+
400: components["responses"]["BadRequest"];
|
|
19599
|
+
401: components["responses"]["Unauthorized"];
|
|
19600
|
+
403: components["responses"]["Forbidden"];
|
|
19601
|
+
404: components["responses"]["NotFound"];
|
|
19602
|
+
/** @description Screenshot exceeds the 2 MB limit */
|
|
19603
|
+
413: {
|
|
19604
|
+
headers: {
|
|
19605
|
+
[name: string]: unknown;
|
|
19606
|
+
};
|
|
19607
|
+
content?: never;
|
|
19608
|
+
};
|
|
19609
|
+
};
|
|
19610
|
+
};
|
|
19153
19611
|
exportAppsBackup: {
|
|
19154
19612
|
parameters: {
|
|
19155
19613
|
query?: never;
|
|
@@ -20555,6 +21013,77 @@ export interface operations {
|
|
|
20555
21013
|
429: components["responses"]["RateLimited"];
|
|
20556
21014
|
};
|
|
20557
21015
|
};
|
|
21016
|
+
ghiiLoginGoogleStart: {
|
|
21017
|
+
parameters: {
|
|
21018
|
+
query?: {
|
|
21019
|
+
/**
|
|
21020
|
+
* @description Same-site absolute path to return to after a successful login (must start
|
|
21021
|
+
* with `/`). Defaults to `/`. Other values are ignored for safety.
|
|
21022
|
+
*/
|
|
21023
|
+
redirect?: string;
|
|
21024
|
+
};
|
|
21025
|
+
header?: never;
|
|
21026
|
+
path?: never;
|
|
21027
|
+
cookie?: never;
|
|
21028
|
+
};
|
|
21029
|
+
requestBody?: never;
|
|
21030
|
+
responses: {
|
|
21031
|
+
/** @description Redirect to the Google authorization endpoint */
|
|
21032
|
+
302: {
|
|
21033
|
+
headers: {
|
|
21034
|
+
[name: string]: unknown;
|
|
21035
|
+
};
|
|
21036
|
+
content?: never;
|
|
21037
|
+
};
|
|
21038
|
+
/** @description Google sign-in is not available on this node */
|
|
21039
|
+
503: {
|
|
21040
|
+
headers: {
|
|
21041
|
+
[name: string]: unknown;
|
|
21042
|
+
};
|
|
21043
|
+
content: {
|
|
21044
|
+
"application/json": components["schemas"]["AimeatEnvelope"] & {
|
|
21045
|
+
error?: {
|
|
21046
|
+
/** @example FEATURE_DISABLED */
|
|
21047
|
+
code?: unknown;
|
|
21048
|
+
};
|
|
21049
|
+
};
|
|
21050
|
+
};
|
|
21051
|
+
};
|
|
21052
|
+
};
|
|
21053
|
+
};
|
|
21054
|
+
ghiiLoginGoogleCallback: {
|
|
21055
|
+
parameters: {
|
|
21056
|
+
query: {
|
|
21057
|
+
/** @description Authorization code from Google */
|
|
21058
|
+
code: string;
|
|
21059
|
+
/** @description Opaque state value issued at the start of the flow */
|
|
21060
|
+
state: string;
|
|
21061
|
+
};
|
|
21062
|
+
header?: never;
|
|
21063
|
+
path?: never;
|
|
21064
|
+
cookie?: never;
|
|
21065
|
+
};
|
|
21066
|
+
requestBody?: never;
|
|
21067
|
+
responses: {
|
|
21068
|
+
/**
|
|
21069
|
+
* @description Redirect back to the SPA on success (refresh cookie set), or to
|
|
21070
|
+
* `/?auth_error=<CODE>` on failure.
|
|
21071
|
+
*/
|
|
21072
|
+
302: {
|
|
21073
|
+
headers: {
|
|
21074
|
+
[name: string]: unknown;
|
|
21075
|
+
};
|
|
21076
|
+
content?: never;
|
|
21077
|
+
};
|
|
21078
|
+
/** @description Google sign-in is not available on this node */
|
|
21079
|
+
503: {
|
|
21080
|
+
headers: {
|
|
21081
|
+
[name: string]: unknown;
|
|
21082
|
+
};
|
|
21083
|
+
content?: never;
|
|
21084
|
+
};
|
|
21085
|
+
};
|
|
21086
|
+
};
|
|
20558
21087
|
searchDirectory: {
|
|
20559
21088
|
parameters: {
|
|
20560
21089
|
query?: {
|