@betterportal/config-manager 10.4.0 → 10.6.0

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