@betterportal/config-manager 10.5.0 → 10.6.1

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 (76) hide show
  1. package/lib/.bsb/clients/service-betterportal-config-manager.d.ts +1 -1
  2. package/lib/.bsb/clients/service-betterportal-config-manager.js +1 -1
  3. package/lib/bp-contracts/org.betterportal.config-manager.json +2330 -1
  4. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts +1466 -0
  5. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts.map +1 -1
  6. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js +35 -0
  7. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js.map +1 -1
  8. package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts.map +1 -1
  9. package/lib/plugins/service-betterportal-config-manager/adminApi.js +15 -2
  10. package/lib/plugins/service-betterportal-config-manager/adminApi.js.map +1 -1
  11. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/DELETE.d.ts +8 -0
  12. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/DELETE.d.ts.map +1 -0
  13. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/DELETE.js +10 -0
  14. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/DELETE.js.map +1 -0
  15. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/GET.d.ts +18 -0
  16. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/GET.d.ts.map +1 -0
  17. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/GET.js +15 -0
  18. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/GET.js.map +1 -0
  19. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/POST.d.ts +8 -0
  20. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/POST.d.ts.map +1 -0
  21. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/POST.js +10 -0
  22. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/POST.js.map +1 -0
  23. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/PUT.d.ts +8 -0
  24. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/PUT.d.ts.map +1 -0
  25. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/PUT.js +10 -0
  26. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/PUT.js.map +1 -0
  27. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/DELETE.d.ts +2 -0
  28. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/DELETE.d.ts.map +1 -0
  29. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/DELETE.js +2 -0
  30. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/DELETE.js.map +1 -0
  31. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.d.ts +4 -0
  32. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.d.ts.map +1 -0
  33. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js +321 -0
  34. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js.map +1 -0
  35. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/POST.d.ts +2 -0
  36. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/POST.d.ts.map +1 -0
  37. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/POST.js +2 -0
  38. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/POST.js.map +1 -0
  39. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/PUT.d.ts +2 -0
  40. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/PUT.d.ts.map +1 -0
  41. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/PUT.js +2 -0
  42. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/PUT.js.map +1 -0
  43. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/index.d.ts +2 -0
  44. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/index.d.ts.map +1 -0
  45. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/index.js +2 -0
  46. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/index.js.map +1 -0
  47. package/lib/plugins/service-betterportal-config-manager/index.d.ts +3 -0
  48. package/lib/plugins/service-betterportal-config-manager/index.d.ts.map +1 -1
  49. package/lib/plugins/service-betterportal-config-manager/index.js +57 -11
  50. package/lib/plugins/service-betterportal-config-manager/index.js.map +1 -1
  51. package/lib/plugins/service-betterportal-config-manager/previewApi.d.ts +7 -0
  52. package/lib/plugins/service-betterportal-config-manager/previewApi.d.ts.map +1 -0
  53. package/lib/plugins/service-betterportal-config-manager/previewApi.js +112 -0
  54. package/lib/plugins/service-betterportal-config-manager/previewApi.js.map +1 -0
  55. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.d.ts +474 -0
  56. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.d.ts.map +1 -0
  57. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.js +462 -0
  58. package/lib/plugins/service-betterportal-config-manager/previewEnvironmentManagement.js.map +1 -0
  59. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.d.ts +61 -0
  60. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.d.ts.map +1 -0
  61. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.js +738 -0
  62. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.js.map +1 -0
  63. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts +3 -1
  64. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts.map +1 -1
  65. package/lib/plugins/service-betterportal-config-manager/storage/core.js +12 -2
  66. package/lib/plugins/service-betterportal-config-manager/storage/core.js.map +1 -1
  67. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts +4 -1
  68. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts.map +1 -1
  69. package/lib/plugins/service-betterportal-config-manager/syncApi.js +6 -3
  70. package/lib/plugins/service-betterportal-config-manager/syncApi.js.map +1 -1
  71. package/lib/plugins/service-betterportal-config-manager/tenantManagement.d.ts.map +1 -1
  72. package/lib/plugins/service-betterportal-config-manager/tenantManagement.js +12 -1
  73. package/lib/plugins/service-betterportal-config-manager/tenantManagement.js.map +1 -1
  74. package/lib/schemas/service-betterportal-config-manager.json +1 -1
  75. package/lib/schemas/service-betterportal-config-manager.plugin.json +1 -1
  76. package/package.json +10 -10
@@ -4,6 +4,7 @@ import * as configEmbeddedPageGET from "../bp-routes/config/_renderer.embedded/G
4
4
  import * as fragmentsBootstrap5PageGET from "../bp-routes/fragments/_renderer.bootstrap5/GET.js";
5
5
  import * as menuBootstrap5PageGET from "../bp-routes/menu/_renderer.bootstrap5/GET.js";
6
6
  import * as previewBootstrap5PageGET from "../bp-routes/preview/_renderer.bootstrap5/GET.js";
7
+ import * as previewEnvironmentsBootstrap5PageDELETE from "../bp-routes/preview-environments/_renderer.bootstrap5/DELETE.js";
7
8
  import * as routesBootstrap5PageGET from "../bp-routes/routes/_renderer.bootstrap5/GET.js";
8
9
  import * as servicesBootstrap5PageGET from "../bp-routes/services/_renderer.bootstrap5/GET.js";
9
10
  import * as settingsBootstrap5PageGET from "../bp-routes/settings/_renderer.bootstrap5/GET.js";
@@ -731,6 +732,1471 @@ export declare const registry: {
731
732
  };
732
733
  embedded?: undefined;
733
734
  };
735
+ } | {
736
+ viewId: string;
737
+ path: string;
738
+ methods: ("GET" | "POST" | "PUT" | "DELETE")[];
739
+ paramNames: never[];
740
+ schemas: {};
741
+ methodRoutes: {
742
+ DELETE: {
743
+ method: "DELETE";
744
+ operationId: string;
745
+ title: string;
746
+ description: string;
747
+ schemas: {
748
+ response: import("anyvali").ObjectSchema<{
749
+ title: import("anyvali").StringSchema;
750
+ previewPath: import("anyvali").StringSchema;
751
+ deploymentApiBase: import("anyvali").StringSchema;
752
+ configTicketUrl: import("anyvali").StringSchema;
753
+ sourceTenants: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
754
+ id: import("anyvali").StringSchema;
755
+ title: import("anyvali").StringSchema;
756
+ }>>;
757
+ sourceApps: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
758
+ id: import("anyvali").StringSchema;
759
+ tenantId: import("anyvali").StringSchema;
760
+ title: import("anyvali").StringSchema;
761
+ }>>;
762
+ groups: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
763
+ id: import("anyvali").StringSchema;
764
+ name: import("anyvali").StringSchema;
765
+ sourceTenantId: import("anyvali").StringSchema;
766
+ sourceAppId: import("anyvali").StringSchema;
767
+ sourceLabel: import("anyvali").StringSchema;
768
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
769
+ oidc: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
770
+ issuer: import("anyvali").StringSchema;
771
+ audience: import("anyvali").StringSchema;
772
+ jwksUri: import("anyvali").StringSchema;
773
+ subjectPrefix: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
774
+ requiredClaimsJson: import("anyvali").StringSchema;
775
+ }>>;
776
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
777
+ serviceId: import("anyvali").StringSchema;
778
+ title: import("anyvali").StringSchema;
779
+ fields: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
780
+ key: import("anyvali").StringSchema;
781
+ title: import("anyvali").StringSchema;
782
+ description: import("anyvali").StringSchema;
783
+ scope: import("anyvali").EnumSchema<readonly ["tenant", "app"]>;
784
+ secret: import("anyvali").BoolSchema;
785
+ required: import("anyvali").BoolSchema;
786
+ defaultValue: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonValue>>;
787
+ control: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
788
+ options: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
789
+ value: import("anyvali").StringSchema;
790
+ label: import("anyvali").StringSchema;
791
+ }>>;
792
+ }>>;
793
+ source: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
794
+ instanceId: import("anyvali").StringSchema;
795
+ hostname: import("anyvali").StringSchema;
796
+ }>>;
797
+ encryptedTenantConfig: import("anyvali").StringSchema;
798
+ encryptedAppConfig: import("anyvali").StringSchema;
799
+ }>>;
800
+ deployments: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
801
+ id: import("anyvali").StringSchema;
802
+ groupId: import("anyvali").StringSchema;
803
+ key: import("anyvali").StringSchema;
804
+ name: import("anyvali").StringSchema;
805
+ hostname: import("anyvali").StringSchema;
806
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
807
+ expiresAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
808
+ createdAt: import("anyvali").StringSchema;
809
+ updatedAt: import("anyvali").StringSchema;
810
+ ready: import("anyvali").BoolSchema;
811
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
812
+ serviceId: import("anyvali").StringSchema;
813
+ instanceId: import("anyvali").StringSchema;
814
+ url: import("anyvali").StringSchema;
815
+ lastSyncAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
816
+ ready: import("anyvali").BoolSchema;
817
+ }>>;
818
+ }>>;
819
+ createdAt: import("anyvali").StringSchema;
820
+ updatedAt: import("anyvali").StringSchema;
821
+ }>>;
822
+ notice: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
823
+ error: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
824
+ issuedApiKey: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
825
+ issuedCredentials: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
826
+ serviceId: import("anyvali").StringSchema;
827
+ instanceId: import("anyvali").StringSchema;
828
+ url: import("anyvali").StringSchema;
829
+ controlPlaneUrl: import("anyvali").StringSchema;
830
+ apiKey: import("anyvali").StringSchema;
831
+ }>>;
832
+ }>;
833
+ };
834
+ handler: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
835
+ title: string;
836
+ previewPath: string;
837
+ deploymentApiBase: string;
838
+ configTicketUrl: string;
839
+ sourceTenants: {
840
+ id: string;
841
+ title: string;
842
+ }[];
843
+ sourceApps: {
844
+ id: string;
845
+ tenantId: string;
846
+ title: string;
847
+ }[];
848
+ groups: {
849
+ id: string;
850
+ name: string;
851
+ sourceTenantId: string;
852
+ sourceAppId: string;
853
+ sourceLabel: string;
854
+ services: {
855
+ serviceId: string;
856
+ title: string;
857
+ fields: {
858
+ key: string;
859
+ title: string;
860
+ description: string;
861
+ scope: "tenant" | "app";
862
+ secret: boolean;
863
+ required: boolean;
864
+ options: {
865
+ value: string;
866
+ label: string;
867
+ }[];
868
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
869
+ control?: string | undefined;
870
+ }[];
871
+ encryptedTenantConfig: string;
872
+ encryptedAppConfig: string;
873
+ source?: {
874
+ instanceId: string;
875
+ hostname: string;
876
+ } | undefined;
877
+ }[];
878
+ deployments: {
879
+ id: string;
880
+ groupId: string;
881
+ key: string;
882
+ name: string;
883
+ hostname: string;
884
+ createdAt: string;
885
+ updatedAt: string;
886
+ ready: boolean;
887
+ services: {
888
+ serviceId: string;
889
+ instanceId: string;
890
+ url: string;
891
+ ready: boolean;
892
+ lastSyncAt?: string | undefined;
893
+ }[];
894
+ expiresInDays?: number | undefined;
895
+ expiresAt?: string | undefined;
896
+ }[];
897
+ createdAt: string;
898
+ updatedAt: string;
899
+ expiresInDays?: number | undefined;
900
+ oidc?: {
901
+ issuer: string;
902
+ audience: string;
903
+ jwksUri: string;
904
+ requiredClaimsJson: string;
905
+ subjectPrefix?: string | undefined;
906
+ } | undefined;
907
+ }[];
908
+ issuedCredentials: {
909
+ serviceId: string;
910
+ instanceId: string;
911
+ url: string;
912
+ controlPlaneUrl: string;
913
+ apiKey: string;
914
+ }[];
915
+ notice?: string | undefined;
916
+ error?: string | undefined;
917
+ issuedApiKey?: string | undefined;
918
+ }, never, Record<string, unknown>>;
919
+ auth: import("@betterportal/framework").ApiAuthRequirement;
920
+ cacheHints: {
921
+ ttlSeconds: number;
922
+ varyBy: string[];
923
+ };
924
+ demoScenarios: import("@betterportal/framework").DemoScenario<{
925
+ title: string;
926
+ previewPath: string;
927
+ deploymentApiBase: string;
928
+ configTicketUrl: string;
929
+ sourceTenants: {
930
+ id: string;
931
+ title: string;
932
+ }[];
933
+ sourceApps: {
934
+ id: string;
935
+ tenantId: string;
936
+ title: string;
937
+ }[];
938
+ groups: {
939
+ id: string;
940
+ name: string;
941
+ sourceTenantId: string;
942
+ sourceAppId: string;
943
+ sourceLabel: string;
944
+ services: {
945
+ serviceId: string;
946
+ title: string;
947
+ fields: {
948
+ key: string;
949
+ title: string;
950
+ description: string;
951
+ scope: "tenant" | "app";
952
+ secret: boolean;
953
+ required: boolean;
954
+ options: {
955
+ value: string;
956
+ label: string;
957
+ }[];
958
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
959
+ control?: string | undefined;
960
+ }[];
961
+ encryptedTenantConfig: string;
962
+ encryptedAppConfig: string;
963
+ source?: {
964
+ instanceId: string;
965
+ hostname: string;
966
+ } | undefined;
967
+ }[];
968
+ deployments: {
969
+ id: string;
970
+ groupId: string;
971
+ key: string;
972
+ name: string;
973
+ hostname: string;
974
+ createdAt: string;
975
+ updatedAt: string;
976
+ ready: boolean;
977
+ services: {
978
+ serviceId: string;
979
+ instanceId: string;
980
+ url: string;
981
+ ready: boolean;
982
+ lastSyncAt?: string | undefined;
983
+ }[];
984
+ expiresInDays?: number | undefined;
985
+ expiresAt?: string | undefined;
986
+ }[];
987
+ createdAt: string;
988
+ updatedAt: string;
989
+ expiresInDays?: number | undefined;
990
+ oidc?: {
991
+ issuer: string;
992
+ audience: string;
993
+ jwksUri: string;
994
+ requiredClaimsJson: string;
995
+ subjectPrefix?: string | undefined;
996
+ } | undefined;
997
+ }[];
998
+ issuedCredentials: {
999
+ serviceId: string;
1000
+ instanceId: string;
1001
+ url: string;
1002
+ controlPlaneUrl: string;
1003
+ apiKey: string;
1004
+ }[];
1005
+ notice?: string | undefined;
1006
+ error?: string | undefined;
1007
+ issuedApiKey?: string | undefined;
1008
+ }>[];
1009
+ };
1010
+ GET: {
1011
+ method: "GET";
1012
+ operationId: string;
1013
+ title: string;
1014
+ description: string;
1015
+ schemas: {
1016
+ response: import("anyvali").ObjectSchema<{
1017
+ title: import("anyvali").StringSchema;
1018
+ previewPath: import("anyvali").StringSchema;
1019
+ deploymentApiBase: import("anyvali").StringSchema;
1020
+ configTicketUrl: import("anyvali").StringSchema;
1021
+ sourceTenants: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1022
+ id: import("anyvali").StringSchema;
1023
+ title: import("anyvali").StringSchema;
1024
+ }>>;
1025
+ sourceApps: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1026
+ id: import("anyvali").StringSchema;
1027
+ tenantId: import("anyvali").StringSchema;
1028
+ title: import("anyvali").StringSchema;
1029
+ }>>;
1030
+ groups: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1031
+ id: import("anyvali").StringSchema;
1032
+ name: import("anyvali").StringSchema;
1033
+ sourceTenantId: import("anyvali").StringSchema;
1034
+ sourceAppId: import("anyvali").StringSchema;
1035
+ sourceLabel: import("anyvali").StringSchema;
1036
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1037
+ oidc: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1038
+ issuer: import("anyvali").StringSchema;
1039
+ audience: import("anyvali").StringSchema;
1040
+ jwksUri: import("anyvali").StringSchema;
1041
+ subjectPrefix: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1042
+ requiredClaimsJson: import("anyvali").StringSchema;
1043
+ }>>;
1044
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1045
+ serviceId: import("anyvali").StringSchema;
1046
+ title: import("anyvali").StringSchema;
1047
+ fields: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1048
+ key: import("anyvali").StringSchema;
1049
+ title: import("anyvali").StringSchema;
1050
+ description: import("anyvali").StringSchema;
1051
+ scope: import("anyvali").EnumSchema<readonly ["tenant", "app"]>;
1052
+ secret: import("anyvali").BoolSchema;
1053
+ required: import("anyvali").BoolSchema;
1054
+ defaultValue: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonValue>>;
1055
+ control: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1056
+ options: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1057
+ value: import("anyvali").StringSchema;
1058
+ label: import("anyvali").StringSchema;
1059
+ }>>;
1060
+ }>>;
1061
+ source: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1062
+ instanceId: import("anyvali").StringSchema;
1063
+ hostname: import("anyvali").StringSchema;
1064
+ }>>;
1065
+ encryptedTenantConfig: import("anyvali").StringSchema;
1066
+ encryptedAppConfig: import("anyvali").StringSchema;
1067
+ }>>;
1068
+ deployments: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1069
+ id: import("anyvali").StringSchema;
1070
+ groupId: import("anyvali").StringSchema;
1071
+ key: import("anyvali").StringSchema;
1072
+ name: import("anyvali").StringSchema;
1073
+ hostname: import("anyvali").StringSchema;
1074
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1075
+ expiresAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1076
+ createdAt: import("anyvali").StringSchema;
1077
+ updatedAt: import("anyvali").StringSchema;
1078
+ ready: import("anyvali").BoolSchema;
1079
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1080
+ serviceId: import("anyvali").StringSchema;
1081
+ instanceId: import("anyvali").StringSchema;
1082
+ url: import("anyvali").StringSchema;
1083
+ lastSyncAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1084
+ ready: import("anyvali").BoolSchema;
1085
+ }>>;
1086
+ }>>;
1087
+ createdAt: import("anyvali").StringSchema;
1088
+ updatedAt: import("anyvali").StringSchema;
1089
+ }>>;
1090
+ notice: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1091
+ error: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1092
+ issuedApiKey: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1093
+ issuedCredentials: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1094
+ serviceId: import("anyvali").StringSchema;
1095
+ instanceId: import("anyvali").StringSchema;
1096
+ url: import("anyvali").StringSchema;
1097
+ controlPlaneUrl: import("anyvali").StringSchema;
1098
+ apiKey: import("anyvali").StringSchema;
1099
+ }>>;
1100
+ }>;
1101
+ query?: undefined;
1102
+ headers?: undefined;
1103
+ request?: undefined;
1104
+ };
1105
+ handler: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
1106
+ title: string;
1107
+ previewPath: string;
1108
+ deploymentApiBase: string;
1109
+ configTicketUrl: string;
1110
+ sourceTenants: {
1111
+ id: string;
1112
+ title: string;
1113
+ }[];
1114
+ sourceApps: {
1115
+ id: string;
1116
+ tenantId: string;
1117
+ title: string;
1118
+ }[];
1119
+ groups: {
1120
+ id: string;
1121
+ name: string;
1122
+ sourceTenantId: string;
1123
+ sourceAppId: string;
1124
+ sourceLabel: string;
1125
+ services: {
1126
+ serviceId: string;
1127
+ title: string;
1128
+ fields: {
1129
+ key: string;
1130
+ title: string;
1131
+ description: string;
1132
+ scope: "tenant" | "app";
1133
+ secret: boolean;
1134
+ required: boolean;
1135
+ options: {
1136
+ value: string;
1137
+ label: string;
1138
+ }[];
1139
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1140
+ control?: string | undefined;
1141
+ }[];
1142
+ encryptedTenantConfig: string;
1143
+ encryptedAppConfig: string;
1144
+ source?: {
1145
+ instanceId: string;
1146
+ hostname: string;
1147
+ } | undefined;
1148
+ }[];
1149
+ deployments: {
1150
+ id: string;
1151
+ groupId: string;
1152
+ key: string;
1153
+ name: string;
1154
+ hostname: string;
1155
+ createdAt: string;
1156
+ updatedAt: string;
1157
+ ready: boolean;
1158
+ services: {
1159
+ serviceId: string;
1160
+ instanceId: string;
1161
+ url: string;
1162
+ ready: boolean;
1163
+ lastSyncAt?: string | undefined;
1164
+ }[];
1165
+ expiresInDays?: number | undefined;
1166
+ expiresAt?: string | undefined;
1167
+ }[];
1168
+ createdAt: string;
1169
+ updatedAt: string;
1170
+ expiresInDays?: number | undefined;
1171
+ oidc?: {
1172
+ issuer: string;
1173
+ audience: string;
1174
+ jwksUri: string;
1175
+ requiredClaimsJson: string;
1176
+ subjectPrefix?: string | undefined;
1177
+ } | undefined;
1178
+ }[];
1179
+ issuedCredentials: {
1180
+ serviceId: string;
1181
+ instanceId: string;
1182
+ url: string;
1183
+ controlPlaneUrl: string;
1184
+ apiKey: string;
1185
+ }[];
1186
+ notice?: string | undefined;
1187
+ error?: string | undefined;
1188
+ issuedApiKey?: string | undefined;
1189
+ }, never, Record<string, unknown>>;
1190
+ auth: import("@betterportal/framework").ApiAuthRequirement;
1191
+ cacheHints: {
1192
+ ttlSeconds: number;
1193
+ varyBy: string[];
1194
+ };
1195
+ demoScenarios: import("@betterportal/framework").DemoScenario<{
1196
+ title: string;
1197
+ previewPath: string;
1198
+ deploymentApiBase: string;
1199
+ configTicketUrl: string;
1200
+ sourceTenants: {
1201
+ id: string;
1202
+ title: string;
1203
+ }[];
1204
+ sourceApps: {
1205
+ id: string;
1206
+ tenantId: string;
1207
+ title: string;
1208
+ }[];
1209
+ groups: {
1210
+ id: string;
1211
+ name: string;
1212
+ sourceTenantId: string;
1213
+ sourceAppId: string;
1214
+ sourceLabel: string;
1215
+ services: {
1216
+ serviceId: string;
1217
+ title: string;
1218
+ fields: {
1219
+ key: string;
1220
+ title: string;
1221
+ description: string;
1222
+ scope: "tenant" | "app";
1223
+ secret: boolean;
1224
+ required: boolean;
1225
+ options: {
1226
+ value: string;
1227
+ label: string;
1228
+ }[];
1229
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1230
+ control?: string | undefined;
1231
+ }[];
1232
+ encryptedTenantConfig: string;
1233
+ encryptedAppConfig: string;
1234
+ source?: {
1235
+ instanceId: string;
1236
+ hostname: string;
1237
+ } | undefined;
1238
+ }[];
1239
+ deployments: {
1240
+ id: string;
1241
+ groupId: string;
1242
+ key: string;
1243
+ name: string;
1244
+ hostname: string;
1245
+ createdAt: string;
1246
+ updatedAt: string;
1247
+ ready: boolean;
1248
+ services: {
1249
+ serviceId: string;
1250
+ instanceId: string;
1251
+ url: string;
1252
+ ready: boolean;
1253
+ lastSyncAt?: string | undefined;
1254
+ }[];
1255
+ expiresInDays?: number | undefined;
1256
+ expiresAt?: string | undefined;
1257
+ }[];
1258
+ createdAt: string;
1259
+ updatedAt: string;
1260
+ expiresInDays?: number | undefined;
1261
+ oidc?: {
1262
+ issuer: string;
1263
+ audience: string;
1264
+ jwksUri: string;
1265
+ requiredClaimsJson: string;
1266
+ subjectPrefix?: string | undefined;
1267
+ } | undefined;
1268
+ }[];
1269
+ issuedCredentials: {
1270
+ serviceId: string;
1271
+ instanceId: string;
1272
+ url: string;
1273
+ controlPlaneUrl: string;
1274
+ apiKey: string;
1275
+ }[];
1276
+ notice?: string | undefined;
1277
+ error?: string | undefined;
1278
+ issuedApiKey?: string | undefined;
1279
+ }>[];
1280
+ dependencies: readonly [{
1281
+ readonly operationId: "admin.preview-environments.create";
1282
+ readonly method: "POST";
1283
+ }, {
1284
+ readonly operationId: "admin.preview-environments.update";
1285
+ readonly method: "PUT";
1286
+ }, {
1287
+ readonly operationId: "admin.preview-environments.delete";
1288
+ readonly method: "DELETE";
1289
+ }];
1290
+ };
1291
+ POST: {
1292
+ method: "POST";
1293
+ operationId: string;
1294
+ title: string;
1295
+ description: string;
1296
+ schemas: {
1297
+ response: import("anyvali").ObjectSchema<{
1298
+ title: import("anyvali").StringSchema;
1299
+ previewPath: import("anyvali").StringSchema;
1300
+ deploymentApiBase: import("anyvali").StringSchema;
1301
+ configTicketUrl: import("anyvali").StringSchema;
1302
+ sourceTenants: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1303
+ id: import("anyvali").StringSchema;
1304
+ title: import("anyvali").StringSchema;
1305
+ }>>;
1306
+ sourceApps: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1307
+ id: import("anyvali").StringSchema;
1308
+ tenantId: import("anyvali").StringSchema;
1309
+ title: import("anyvali").StringSchema;
1310
+ }>>;
1311
+ groups: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1312
+ id: import("anyvali").StringSchema;
1313
+ name: import("anyvali").StringSchema;
1314
+ sourceTenantId: import("anyvali").StringSchema;
1315
+ sourceAppId: import("anyvali").StringSchema;
1316
+ sourceLabel: import("anyvali").StringSchema;
1317
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1318
+ oidc: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1319
+ issuer: import("anyvali").StringSchema;
1320
+ audience: import("anyvali").StringSchema;
1321
+ jwksUri: import("anyvali").StringSchema;
1322
+ subjectPrefix: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1323
+ requiredClaimsJson: import("anyvali").StringSchema;
1324
+ }>>;
1325
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1326
+ serviceId: import("anyvali").StringSchema;
1327
+ title: import("anyvali").StringSchema;
1328
+ fields: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1329
+ key: import("anyvali").StringSchema;
1330
+ title: import("anyvali").StringSchema;
1331
+ description: import("anyvali").StringSchema;
1332
+ scope: import("anyvali").EnumSchema<readonly ["tenant", "app"]>;
1333
+ secret: import("anyvali").BoolSchema;
1334
+ required: import("anyvali").BoolSchema;
1335
+ defaultValue: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonValue>>;
1336
+ control: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1337
+ options: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1338
+ value: import("anyvali").StringSchema;
1339
+ label: import("anyvali").StringSchema;
1340
+ }>>;
1341
+ }>>;
1342
+ source: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1343
+ instanceId: import("anyvali").StringSchema;
1344
+ hostname: import("anyvali").StringSchema;
1345
+ }>>;
1346
+ encryptedTenantConfig: import("anyvali").StringSchema;
1347
+ encryptedAppConfig: import("anyvali").StringSchema;
1348
+ }>>;
1349
+ deployments: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1350
+ id: import("anyvali").StringSchema;
1351
+ groupId: import("anyvali").StringSchema;
1352
+ key: import("anyvali").StringSchema;
1353
+ name: import("anyvali").StringSchema;
1354
+ hostname: import("anyvali").StringSchema;
1355
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1356
+ expiresAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1357
+ createdAt: import("anyvali").StringSchema;
1358
+ updatedAt: import("anyvali").StringSchema;
1359
+ ready: import("anyvali").BoolSchema;
1360
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1361
+ serviceId: import("anyvali").StringSchema;
1362
+ instanceId: import("anyvali").StringSchema;
1363
+ url: import("anyvali").StringSchema;
1364
+ lastSyncAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1365
+ ready: import("anyvali").BoolSchema;
1366
+ }>>;
1367
+ }>>;
1368
+ createdAt: import("anyvali").StringSchema;
1369
+ updatedAt: import("anyvali").StringSchema;
1370
+ }>>;
1371
+ notice: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1372
+ error: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1373
+ issuedApiKey: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1374
+ issuedCredentials: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1375
+ serviceId: import("anyvali").StringSchema;
1376
+ instanceId: import("anyvali").StringSchema;
1377
+ url: import("anyvali").StringSchema;
1378
+ controlPlaneUrl: import("anyvali").StringSchema;
1379
+ apiKey: import("anyvali").StringSchema;
1380
+ }>>;
1381
+ }>;
1382
+ };
1383
+ handler: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
1384
+ title: string;
1385
+ previewPath: string;
1386
+ deploymentApiBase: string;
1387
+ configTicketUrl: string;
1388
+ sourceTenants: {
1389
+ id: string;
1390
+ title: string;
1391
+ }[];
1392
+ sourceApps: {
1393
+ id: string;
1394
+ tenantId: string;
1395
+ title: string;
1396
+ }[];
1397
+ groups: {
1398
+ id: string;
1399
+ name: string;
1400
+ sourceTenantId: string;
1401
+ sourceAppId: string;
1402
+ sourceLabel: string;
1403
+ services: {
1404
+ serviceId: string;
1405
+ title: string;
1406
+ fields: {
1407
+ key: string;
1408
+ title: string;
1409
+ description: string;
1410
+ scope: "tenant" | "app";
1411
+ secret: boolean;
1412
+ required: boolean;
1413
+ options: {
1414
+ value: string;
1415
+ label: string;
1416
+ }[];
1417
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1418
+ control?: string | undefined;
1419
+ }[];
1420
+ encryptedTenantConfig: string;
1421
+ encryptedAppConfig: string;
1422
+ source?: {
1423
+ instanceId: string;
1424
+ hostname: string;
1425
+ } | undefined;
1426
+ }[];
1427
+ deployments: {
1428
+ id: string;
1429
+ groupId: string;
1430
+ key: string;
1431
+ name: string;
1432
+ hostname: string;
1433
+ createdAt: string;
1434
+ updatedAt: string;
1435
+ ready: boolean;
1436
+ services: {
1437
+ serviceId: string;
1438
+ instanceId: string;
1439
+ url: string;
1440
+ ready: boolean;
1441
+ lastSyncAt?: string | undefined;
1442
+ }[];
1443
+ expiresInDays?: number | undefined;
1444
+ expiresAt?: string | undefined;
1445
+ }[];
1446
+ createdAt: string;
1447
+ updatedAt: string;
1448
+ expiresInDays?: number | undefined;
1449
+ oidc?: {
1450
+ issuer: string;
1451
+ audience: string;
1452
+ jwksUri: string;
1453
+ requiredClaimsJson: string;
1454
+ subjectPrefix?: string | undefined;
1455
+ } | undefined;
1456
+ }[];
1457
+ issuedCredentials: {
1458
+ serviceId: string;
1459
+ instanceId: string;
1460
+ url: string;
1461
+ controlPlaneUrl: string;
1462
+ apiKey: string;
1463
+ }[];
1464
+ notice?: string | undefined;
1465
+ error?: string | undefined;
1466
+ issuedApiKey?: string | undefined;
1467
+ }, never, Record<string, unknown>>;
1468
+ auth: import("@betterportal/framework").ApiAuthRequirement;
1469
+ cacheHints: {
1470
+ ttlSeconds: number;
1471
+ varyBy: string[];
1472
+ };
1473
+ demoScenarios: import("@betterportal/framework").DemoScenario<{
1474
+ title: string;
1475
+ previewPath: string;
1476
+ deploymentApiBase: string;
1477
+ configTicketUrl: string;
1478
+ sourceTenants: {
1479
+ id: string;
1480
+ title: string;
1481
+ }[];
1482
+ sourceApps: {
1483
+ id: string;
1484
+ tenantId: string;
1485
+ title: string;
1486
+ }[];
1487
+ groups: {
1488
+ id: string;
1489
+ name: string;
1490
+ sourceTenantId: string;
1491
+ sourceAppId: string;
1492
+ sourceLabel: string;
1493
+ services: {
1494
+ serviceId: string;
1495
+ title: string;
1496
+ fields: {
1497
+ key: string;
1498
+ title: string;
1499
+ description: string;
1500
+ scope: "tenant" | "app";
1501
+ secret: boolean;
1502
+ required: boolean;
1503
+ options: {
1504
+ value: string;
1505
+ label: string;
1506
+ }[];
1507
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1508
+ control?: string | undefined;
1509
+ }[];
1510
+ encryptedTenantConfig: string;
1511
+ encryptedAppConfig: string;
1512
+ source?: {
1513
+ instanceId: string;
1514
+ hostname: string;
1515
+ } | undefined;
1516
+ }[];
1517
+ deployments: {
1518
+ id: string;
1519
+ groupId: string;
1520
+ key: string;
1521
+ name: string;
1522
+ hostname: string;
1523
+ createdAt: string;
1524
+ updatedAt: string;
1525
+ ready: boolean;
1526
+ services: {
1527
+ serviceId: string;
1528
+ instanceId: string;
1529
+ url: string;
1530
+ ready: boolean;
1531
+ lastSyncAt?: string | undefined;
1532
+ }[];
1533
+ expiresInDays?: number | undefined;
1534
+ expiresAt?: string | undefined;
1535
+ }[];
1536
+ createdAt: string;
1537
+ updatedAt: string;
1538
+ expiresInDays?: number | undefined;
1539
+ oidc?: {
1540
+ issuer: string;
1541
+ audience: string;
1542
+ jwksUri: string;
1543
+ requiredClaimsJson: string;
1544
+ subjectPrefix?: string | undefined;
1545
+ } | undefined;
1546
+ }[];
1547
+ issuedCredentials: {
1548
+ serviceId: string;
1549
+ instanceId: string;
1550
+ url: string;
1551
+ controlPlaneUrl: string;
1552
+ apiKey: string;
1553
+ }[];
1554
+ notice?: string | undefined;
1555
+ error?: string | undefined;
1556
+ issuedApiKey?: string | undefined;
1557
+ }>[];
1558
+ };
1559
+ PUT: {
1560
+ method: "PUT";
1561
+ operationId: string;
1562
+ title: string;
1563
+ description: string;
1564
+ schemas: {
1565
+ response: import("anyvali").ObjectSchema<{
1566
+ title: import("anyvali").StringSchema;
1567
+ previewPath: import("anyvali").StringSchema;
1568
+ deploymentApiBase: import("anyvali").StringSchema;
1569
+ configTicketUrl: import("anyvali").StringSchema;
1570
+ sourceTenants: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1571
+ id: import("anyvali").StringSchema;
1572
+ title: import("anyvali").StringSchema;
1573
+ }>>;
1574
+ sourceApps: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1575
+ id: import("anyvali").StringSchema;
1576
+ tenantId: import("anyvali").StringSchema;
1577
+ title: import("anyvali").StringSchema;
1578
+ }>>;
1579
+ groups: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1580
+ id: import("anyvali").StringSchema;
1581
+ name: import("anyvali").StringSchema;
1582
+ sourceTenantId: import("anyvali").StringSchema;
1583
+ sourceAppId: import("anyvali").StringSchema;
1584
+ sourceLabel: import("anyvali").StringSchema;
1585
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1586
+ oidc: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1587
+ issuer: import("anyvali").StringSchema;
1588
+ audience: import("anyvali").StringSchema;
1589
+ jwksUri: import("anyvali").StringSchema;
1590
+ subjectPrefix: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1591
+ requiredClaimsJson: import("anyvali").StringSchema;
1592
+ }>>;
1593
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1594
+ serviceId: import("anyvali").StringSchema;
1595
+ title: import("anyvali").StringSchema;
1596
+ fields: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1597
+ key: import("anyvali").StringSchema;
1598
+ title: import("anyvali").StringSchema;
1599
+ description: import("anyvali").StringSchema;
1600
+ scope: import("anyvali").EnumSchema<readonly ["tenant", "app"]>;
1601
+ secret: import("anyvali").BoolSchema;
1602
+ required: import("anyvali").BoolSchema;
1603
+ defaultValue: import("anyvali").OptionalSchema<import("anyvali").BaseSchema<unknown, import("@betterportal/framework").JsonValue>>;
1604
+ control: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1605
+ options: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1606
+ value: import("anyvali").StringSchema;
1607
+ label: import("anyvali").StringSchema;
1608
+ }>>;
1609
+ }>>;
1610
+ source: import("anyvali").OptionalSchema<import("anyvali").ObjectSchema<{
1611
+ instanceId: import("anyvali").StringSchema;
1612
+ hostname: import("anyvali").StringSchema;
1613
+ }>>;
1614
+ encryptedTenantConfig: import("anyvali").StringSchema;
1615
+ encryptedAppConfig: import("anyvali").StringSchema;
1616
+ }>>;
1617
+ deployments: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1618
+ id: import("anyvali").StringSchema;
1619
+ groupId: import("anyvali").StringSchema;
1620
+ key: import("anyvali").StringSchema;
1621
+ name: import("anyvali").StringSchema;
1622
+ hostname: import("anyvali").StringSchema;
1623
+ expiresInDays: import("anyvali").OptionalSchema<import("anyvali").IntSchema>;
1624
+ expiresAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1625
+ createdAt: import("anyvali").StringSchema;
1626
+ updatedAt: import("anyvali").StringSchema;
1627
+ ready: import("anyvali").BoolSchema;
1628
+ services: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1629
+ serviceId: import("anyvali").StringSchema;
1630
+ instanceId: import("anyvali").StringSchema;
1631
+ url: import("anyvali").StringSchema;
1632
+ lastSyncAt: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1633
+ ready: import("anyvali").BoolSchema;
1634
+ }>>;
1635
+ }>>;
1636
+ createdAt: import("anyvali").StringSchema;
1637
+ updatedAt: import("anyvali").StringSchema;
1638
+ }>>;
1639
+ notice: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1640
+ error: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1641
+ issuedApiKey: import("anyvali").OptionalSchema<import("anyvali").StringSchema>;
1642
+ issuedCredentials: import("anyvali").ArraySchema<import("anyvali").ObjectSchema<{
1643
+ serviceId: import("anyvali").StringSchema;
1644
+ instanceId: import("anyvali").StringSchema;
1645
+ url: import("anyvali").StringSchema;
1646
+ controlPlaneUrl: import("anyvali").StringSchema;
1647
+ apiKey: import("anyvali").StringSchema;
1648
+ }>>;
1649
+ }>;
1650
+ };
1651
+ handler: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
1652
+ title: string;
1653
+ previewPath: string;
1654
+ deploymentApiBase: string;
1655
+ configTicketUrl: string;
1656
+ sourceTenants: {
1657
+ id: string;
1658
+ title: string;
1659
+ }[];
1660
+ sourceApps: {
1661
+ id: string;
1662
+ tenantId: string;
1663
+ title: string;
1664
+ }[];
1665
+ groups: {
1666
+ id: string;
1667
+ name: string;
1668
+ sourceTenantId: string;
1669
+ sourceAppId: string;
1670
+ sourceLabel: string;
1671
+ services: {
1672
+ serviceId: string;
1673
+ title: string;
1674
+ fields: {
1675
+ key: string;
1676
+ title: string;
1677
+ description: string;
1678
+ scope: "tenant" | "app";
1679
+ secret: boolean;
1680
+ required: boolean;
1681
+ options: {
1682
+ value: string;
1683
+ label: string;
1684
+ }[];
1685
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1686
+ control?: string | undefined;
1687
+ }[];
1688
+ encryptedTenantConfig: string;
1689
+ encryptedAppConfig: string;
1690
+ source?: {
1691
+ instanceId: string;
1692
+ hostname: string;
1693
+ } | undefined;
1694
+ }[];
1695
+ deployments: {
1696
+ id: string;
1697
+ groupId: string;
1698
+ key: string;
1699
+ name: string;
1700
+ hostname: string;
1701
+ createdAt: string;
1702
+ updatedAt: string;
1703
+ ready: boolean;
1704
+ services: {
1705
+ serviceId: string;
1706
+ instanceId: string;
1707
+ url: string;
1708
+ ready: boolean;
1709
+ lastSyncAt?: string | undefined;
1710
+ }[];
1711
+ expiresInDays?: number | undefined;
1712
+ expiresAt?: string | undefined;
1713
+ }[];
1714
+ createdAt: string;
1715
+ updatedAt: string;
1716
+ expiresInDays?: number | undefined;
1717
+ oidc?: {
1718
+ issuer: string;
1719
+ audience: string;
1720
+ jwksUri: string;
1721
+ requiredClaimsJson: string;
1722
+ subjectPrefix?: string | undefined;
1723
+ } | undefined;
1724
+ }[];
1725
+ issuedCredentials: {
1726
+ serviceId: string;
1727
+ instanceId: string;
1728
+ url: string;
1729
+ controlPlaneUrl: string;
1730
+ apiKey: string;
1731
+ }[];
1732
+ notice?: string | undefined;
1733
+ error?: string | undefined;
1734
+ issuedApiKey?: string | undefined;
1735
+ }, never, Record<string, unknown>>;
1736
+ auth: import("@betterportal/framework").ApiAuthRequirement;
1737
+ cacheHints: {
1738
+ ttlSeconds: number;
1739
+ varyBy: string[];
1740
+ };
1741
+ demoScenarios: import("@betterportal/framework").DemoScenario<{
1742
+ title: string;
1743
+ previewPath: string;
1744
+ deploymentApiBase: string;
1745
+ configTicketUrl: string;
1746
+ sourceTenants: {
1747
+ id: string;
1748
+ title: string;
1749
+ }[];
1750
+ sourceApps: {
1751
+ id: string;
1752
+ tenantId: string;
1753
+ title: string;
1754
+ }[];
1755
+ groups: {
1756
+ id: string;
1757
+ name: string;
1758
+ sourceTenantId: string;
1759
+ sourceAppId: string;
1760
+ sourceLabel: string;
1761
+ services: {
1762
+ serviceId: string;
1763
+ title: string;
1764
+ fields: {
1765
+ key: string;
1766
+ title: string;
1767
+ description: string;
1768
+ scope: "tenant" | "app";
1769
+ secret: boolean;
1770
+ required: boolean;
1771
+ options: {
1772
+ value: string;
1773
+ label: string;
1774
+ }[];
1775
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1776
+ control?: string | undefined;
1777
+ }[];
1778
+ encryptedTenantConfig: string;
1779
+ encryptedAppConfig: string;
1780
+ source?: {
1781
+ instanceId: string;
1782
+ hostname: string;
1783
+ } | undefined;
1784
+ }[];
1785
+ deployments: {
1786
+ id: string;
1787
+ groupId: string;
1788
+ key: string;
1789
+ name: string;
1790
+ hostname: string;
1791
+ createdAt: string;
1792
+ updatedAt: string;
1793
+ ready: boolean;
1794
+ services: {
1795
+ serviceId: string;
1796
+ instanceId: string;
1797
+ url: string;
1798
+ ready: boolean;
1799
+ lastSyncAt?: string | undefined;
1800
+ }[];
1801
+ expiresInDays?: number | undefined;
1802
+ expiresAt?: string | undefined;
1803
+ }[];
1804
+ createdAt: string;
1805
+ updatedAt: string;
1806
+ expiresInDays?: number | undefined;
1807
+ oidc?: {
1808
+ issuer: string;
1809
+ audience: string;
1810
+ jwksUri: string;
1811
+ requiredClaimsJson: string;
1812
+ subjectPrefix?: string | undefined;
1813
+ } | undefined;
1814
+ }[];
1815
+ issuedCredentials: {
1816
+ serviceId: string;
1817
+ instanceId: string;
1818
+ url: string;
1819
+ controlPlaneUrl: string;
1820
+ apiKey: string;
1821
+ }[];
1822
+ notice?: string | undefined;
1823
+ error?: string | undefined;
1824
+ issuedApiKey?: string | undefined;
1825
+ }>[];
1826
+ };
1827
+ };
1828
+ handlers: {
1829
+ DELETE: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
1830
+ title: string;
1831
+ previewPath: string;
1832
+ deploymentApiBase: string;
1833
+ configTicketUrl: string;
1834
+ sourceTenants: {
1835
+ id: string;
1836
+ title: string;
1837
+ }[];
1838
+ sourceApps: {
1839
+ id: string;
1840
+ tenantId: string;
1841
+ title: string;
1842
+ }[];
1843
+ groups: {
1844
+ id: string;
1845
+ name: string;
1846
+ sourceTenantId: string;
1847
+ sourceAppId: string;
1848
+ sourceLabel: string;
1849
+ services: {
1850
+ serviceId: string;
1851
+ title: string;
1852
+ fields: {
1853
+ key: string;
1854
+ title: string;
1855
+ description: string;
1856
+ scope: "tenant" | "app";
1857
+ secret: boolean;
1858
+ required: boolean;
1859
+ options: {
1860
+ value: string;
1861
+ label: string;
1862
+ }[];
1863
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1864
+ control?: string | undefined;
1865
+ }[];
1866
+ encryptedTenantConfig: string;
1867
+ encryptedAppConfig: string;
1868
+ source?: {
1869
+ instanceId: string;
1870
+ hostname: string;
1871
+ } | undefined;
1872
+ }[];
1873
+ deployments: {
1874
+ id: string;
1875
+ groupId: string;
1876
+ key: string;
1877
+ name: string;
1878
+ hostname: string;
1879
+ createdAt: string;
1880
+ updatedAt: string;
1881
+ ready: boolean;
1882
+ services: {
1883
+ serviceId: string;
1884
+ instanceId: string;
1885
+ url: string;
1886
+ ready: boolean;
1887
+ lastSyncAt?: string | undefined;
1888
+ }[];
1889
+ expiresInDays?: number | undefined;
1890
+ expiresAt?: string | undefined;
1891
+ }[];
1892
+ createdAt: string;
1893
+ updatedAt: string;
1894
+ expiresInDays?: number | undefined;
1895
+ oidc?: {
1896
+ issuer: string;
1897
+ audience: string;
1898
+ jwksUri: string;
1899
+ requiredClaimsJson: string;
1900
+ subjectPrefix?: string | undefined;
1901
+ } | undefined;
1902
+ }[];
1903
+ issuedCredentials: {
1904
+ serviceId: string;
1905
+ instanceId: string;
1906
+ url: string;
1907
+ controlPlaneUrl: string;
1908
+ apiKey: string;
1909
+ }[];
1910
+ notice?: string | undefined;
1911
+ error?: string | undefined;
1912
+ issuedApiKey?: string | undefined;
1913
+ }, never, Record<string, unknown>>;
1914
+ GET: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
1915
+ title: string;
1916
+ previewPath: string;
1917
+ deploymentApiBase: string;
1918
+ configTicketUrl: string;
1919
+ sourceTenants: {
1920
+ id: string;
1921
+ title: string;
1922
+ }[];
1923
+ sourceApps: {
1924
+ id: string;
1925
+ tenantId: string;
1926
+ title: string;
1927
+ }[];
1928
+ groups: {
1929
+ id: string;
1930
+ name: string;
1931
+ sourceTenantId: string;
1932
+ sourceAppId: string;
1933
+ sourceLabel: string;
1934
+ services: {
1935
+ serviceId: string;
1936
+ title: string;
1937
+ fields: {
1938
+ key: string;
1939
+ title: string;
1940
+ description: string;
1941
+ scope: "tenant" | "app";
1942
+ secret: boolean;
1943
+ required: boolean;
1944
+ options: {
1945
+ value: string;
1946
+ label: string;
1947
+ }[];
1948
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
1949
+ control?: string | undefined;
1950
+ }[];
1951
+ encryptedTenantConfig: string;
1952
+ encryptedAppConfig: string;
1953
+ source?: {
1954
+ instanceId: string;
1955
+ hostname: string;
1956
+ } | undefined;
1957
+ }[];
1958
+ deployments: {
1959
+ id: string;
1960
+ groupId: string;
1961
+ key: string;
1962
+ name: string;
1963
+ hostname: string;
1964
+ createdAt: string;
1965
+ updatedAt: string;
1966
+ ready: boolean;
1967
+ services: {
1968
+ serviceId: string;
1969
+ instanceId: string;
1970
+ url: string;
1971
+ ready: boolean;
1972
+ lastSyncAt?: string | undefined;
1973
+ }[];
1974
+ expiresInDays?: number | undefined;
1975
+ expiresAt?: string | undefined;
1976
+ }[];
1977
+ createdAt: string;
1978
+ updatedAt: string;
1979
+ expiresInDays?: number | undefined;
1980
+ oidc?: {
1981
+ issuer: string;
1982
+ audience: string;
1983
+ jwksUri: string;
1984
+ requiredClaimsJson: string;
1985
+ subjectPrefix?: string | undefined;
1986
+ } | undefined;
1987
+ }[];
1988
+ issuedCredentials: {
1989
+ serviceId: string;
1990
+ instanceId: string;
1991
+ url: string;
1992
+ controlPlaneUrl: string;
1993
+ apiKey: string;
1994
+ }[];
1995
+ notice?: string | undefined;
1996
+ error?: string | undefined;
1997
+ issuedApiKey?: string | undefined;
1998
+ }, never, Record<string, unknown>>;
1999
+ POST: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
2000
+ title: string;
2001
+ previewPath: string;
2002
+ deploymentApiBase: string;
2003
+ configTicketUrl: string;
2004
+ sourceTenants: {
2005
+ id: string;
2006
+ title: string;
2007
+ }[];
2008
+ sourceApps: {
2009
+ id: string;
2010
+ tenantId: string;
2011
+ title: string;
2012
+ }[];
2013
+ groups: {
2014
+ id: string;
2015
+ name: string;
2016
+ sourceTenantId: string;
2017
+ sourceAppId: string;
2018
+ sourceLabel: string;
2019
+ services: {
2020
+ serviceId: string;
2021
+ title: string;
2022
+ fields: {
2023
+ key: string;
2024
+ title: string;
2025
+ description: string;
2026
+ scope: "tenant" | "app";
2027
+ secret: boolean;
2028
+ required: boolean;
2029
+ options: {
2030
+ value: string;
2031
+ label: string;
2032
+ }[];
2033
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
2034
+ control?: string | undefined;
2035
+ }[];
2036
+ encryptedTenantConfig: string;
2037
+ encryptedAppConfig: string;
2038
+ source?: {
2039
+ instanceId: string;
2040
+ hostname: string;
2041
+ } | undefined;
2042
+ }[];
2043
+ deployments: {
2044
+ id: string;
2045
+ groupId: string;
2046
+ key: string;
2047
+ name: string;
2048
+ hostname: string;
2049
+ createdAt: string;
2050
+ updatedAt: string;
2051
+ ready: boolean;
2052
+ services: {
2053
+ serviceId: string;
2054
+ instanceId: string;
2055
+ url: string;
2056
+ ready: boolean;
2057
+ lastSyncAt?: string | undefined;
2058
+ }[];
2059
+ expiresInDays?: number | undefined;
2060
+ expiresAt?: string | undefined;
2061
+ }[];
2062
+ createdAt: string;
2063
+ updatedAt: string;
2064
+ expiresInDays?: number | undefined;
2065
+ oidc?: {
2066
+ issuer: string;
2067
+ audience: string;
2068
+ jwksUri: string;
2069
+ requiredClaimsJson: string;
2070
+ subjectPrefix?: string | undefined;
2071
+ } | undefined;
2072
+ }[];
2073
+ issuedCredentials: {
2074
+ serviceId: string;
2075
+ instanceId: string;
2076
+ url: string;
2077
+ controlPlaneUrl: string;
2078
+ apiKey: string;
2079
+ }[];
2080
+ notice?: string | undefined;
2081
+ error?: string | undefined;
2082
+ issuedApiKey?: string | undefined;
2083
+ }, never, Record<string, unknown>>;
2084
+ PUT: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
2085
+ title: string;
2086
+ previewPath: string;
2087
+ deploymentApiBase: string;
2088
+ configTicketUrl: string;
2089
+ sourceTenants: {
2090
+ id: string;
2091
+ title: string;
2092
+ }[];
2093
+ sourceApps: {
2094
+ id: string;
2095
+ tenantId: string;
2096
+ title: string;
2097
+ }[];
2098
+ groups: {
2099
+ id: string;
2100
+ name: string;
2101
+ sourceTenantId: string;
2102
+ sourceAppId: string;
2103
+ sourceLabel: string;
2104
+ services: {
2105
+ serviceId: string;
2106
+ title: string;
2107
+ fields: {
2108
+ key: string;
2109
+ title: string;
2110
+ description: string;
2111
+ scope: "tenant" | "app";
2112
+ secret: boolean;
2113
+ required: boolean;
2114
+ options: {
2115
+ value: string;
2116
+ label: string;
2117
+ }[];
2118
+ defaultValue?: import("@betterportal/framework").JsonValue | undefined;
2119
+ control?: string | undefined;
2120
+ }[];
2121
+ encryptedTenantConfig: string;
2122
+ encryptedAppConfig: string;
2123
+ source?: {
2124
+ instanceId: string;
2125
+ hostname: string;
2126
+ } | undefined;
2127
+ }[];
2128
+ deployments: {
2129
+ id: string;
2130
+ groupId: string;
2131
+ key: string;
2132
+ name: string;
2133
+ hostname: string;
2134
+ createdAt: string;
2135
+ updatedAt: string;
2136
+ ready: boolean;
2137
+ services: {
2138
+ serviceId: string;
2139
+ instanceId: string;
2140
+ url: string;
2141
+ ready: boolean;
2142
+ lastSyncAt?: string | undefined;
2143
+ }[];
2144
+ expiresInDays?: number | undefined;
2145
+ expiresAt?: string | undefined;
2146
+ }[];
2147
+ createdAt: string;
2148
+ updatedAt: string;
2149
+ expiresInDays?: number | undefined;
2150
+ oidc?: {
2151
+ issuer: string;
2152
+ audience: string;
2153
+ jwksUri: string;
2154
+ requiredClaimsJson: string;
2155
+ subjectPrefix?: string | undefined;
2156
+ } | undefined;
2157
+ }[];
2158
+ issuedCredentials: {
2159
+ serviceId: string;
2160
+ instanceId: string;
2161
+ url: string;
2162
+ controlPlaneUrl: string;
2163
+ apiKey: string;
2164
+ }[];
2165
+ notice?: string | undefined;
2166
+ error?: string | undefined;
2167
+ issuedApiKey?: string | undefined;
2168
+ }, never, Record<string, unknown>>;
2169
+ };
2170
+ title: string;
2171
+ description: string;
2172
+ renderers: {
2173
+ bootstrap5: {
2174
+ pages: ({
2175
+ rendererId: string;
2176
+ type: "page";
2177
+ method: "DELETE";
2178
+ render: typeof previewEnvironmentsBootstrap5PageDELETE.render;
2179
+ } | {
2180
+ rendererId: string;
2181
+ type: "page";
2182
+ method: "GET";
2183
+ render: typeof previewEnvironmentsBootstrap5PageDELETE.render;
2184
+ } | {
2185
+ rendererId: string;
2186
+ type: "page";
2187
+ method: "POST";
2188
+ render: typeof previewEnvironmentsBootstrap5PageDELETE.render;
2189
+ } | {
2190
+ rendererId: string;
2191
+ type: "page";
2192
+ method: "PUT";
2193
+ render: typeof previewEnvironmentsBootstrap5PageDELETE.render;
2194
+ })[];
2195
+ components: never[];
2196
+ fragments: never[];
2197
+ };
2198
+ embedded?: undefined;
2199
+ };
734
2200
  } | {
735
2201
  viewId: string;
736
2202
  path: string;