@sava-info-systems/api-maker-with-extensions 2.3.0 → 3.0.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 (242) hide show
  1. package/.dockerignore +5 -1
  2. package/Dockerfile +1 -35
  3. package/Dockerfile.base +22 -0
  4. package/Dockerfile.extended-base +44 -0
  5. package/dist/1025.5c34b11ab88519fd.js +1 -0
  6. package/dist/1097.3c5b2b4587cefa6e.js +1 -0
  7. package/dist/115.8d10b2b963e7d632.js +1 -0
  8. package/dist/148.f8f560a5f818328e.js +1 -0
  9. package/dist/1558.576af7585833e289.js +1 -0
  10. package/dist/1678.14f917ee37080d63.js +1 -0
  11. package/dist/1754.fc6d6e9f6c1e96d5.js +1 -0
  12. package/dist/1928.9c9375dd036b025a.js +1 -0
  13. package/dist/1957.b718aa368330b524.js +1 -0
  14. package/dist/2140.bb097d69bcb6a1e5.js +1 -0
  15. package/dist/2295.aa3514c8d1238cb2.js +1 -0
  16. package/dist/238.553f30dbe5124419.js +1 -0
  17. package/dist/2473.260a6b26a70eaa8d.js +1 -0
  18. package/dist/2579.b02fe6a8ba3a2e71.js +1 -0
  19. package/dist/2714.b41d14f7378785df.js +1 -0
  20. package/dist/2735.4046cae4c68ac75f.js +1 -0
  21. package/dist/292.bb85e0ea91dcc118.js +1 -0
  22. package/dist/3139.5dd9289cc24b4100.js +1 -0
  23. package/dist/3450.588aafa515b19133.js +1 -0
  24. package/dist/3664.ed1232e3c70195fc.js +1 -0
  25. package/dist/3752.d4e0a280a37c1426.js +1 -0
  26. package/dist/3rdpartylicenses.txt +1 -1
  27. package/dist/4110.b9ebfd9a7382c450.js +1 -0
  28. package/dist/4186.2fd0537d5bc6d882.js +1 -0
  29. package/dist/4211.b6b9f495b100e985.js +1 -0
  30. package/dist/4575.1fee055d10b57afc.js +1 -0
  31. package/dist/4842.ccf765ed3e9753a7.js +1 -0
  32. package/dist/485.7870367c9475fed8.js +1 -0
  33. package/dist/{4895.a54759704d1994b1.js → 4895.fa7b24d66157c531.js} +1 -1
  34. package/dist/5334.e0a2450fc295f659.js +1 -0
  35. package/dist/5421.2c2c0fbf926792db.js +1 -0
  36. package/dist/5434.0997994b319a866a.js +1 -0
  37. package/dist/5679.e362a3e10cb1b953.js +1 -0
  38. package/dist/5761.6c20b09245ac31ef.js +1 -0
  39. package/dist/5765.8d761aef1708e8a1.js +1 -0
  40. package/dist/6236.969b45cad747277c.js +1 -0
  41. package/dist/6393.1b7b097f17d75290.js +1 -0
  42. package/dist/6401.f18e3c98d6deaa22.js +1 -0
  43. package/dist/6650.05ea40acd68697c3.js +1 -0
  44. package/dist/7368.85d940d08fdca6e2.js +1 -0
  45. package/dist/7436.4a62f7ef13cffb21.js +1 -0
  46. package/dist/7470.d24359dc7a3ef75a.js +1 -0
  47. package/dist/7649.8e5ff8a951b474e0.js +1 -0
  48. package/dist/7975.d3d7064d527ac017.js +1 -0
  49. package/dist/7977.85b17bdb465e9a90.js +1 -0
  50. package/dist/7987.c1637bec96a9cc03.js +1 -0
  51. package/dist/8125.8390bc1b477ec6b9.js +1 -0
  52. package/dist/8266.0bf85311cf40ddff.js +1 -0
  53. package/dist/8296.fe54c3787977fad3.js +1 -0
  54. package/dist/885.7e1ec0f82adbdd6f.js +1 -0
  55. package/dist/891.fee03277c7f1c29d.js +1 -0
  56. package/dist/{913.4580b4ce4307a40f.js → 913.e49eb351997bc25c.js} +1 -1
  57. package/dist/9243.eaa2c312b42fc4b3.js +1 -0
  58. package/dist/9575.8404e98d640fd9f9.js +1 -0
  59. package/dist/9939.537c5e355804804b.js +1 -0
  60. package/dist/assets/images/icons/api-group-light.svg +11 -0
  61. package/dist/assets/images/icons/api-group.svg +5 -5
  62. package/dist/assets/images/icons/api-maker-deployment-light.svg +5 -0
  63. package/dist/assets/images/icons/api-maker-deployment.svg +3 -3
  64. package/dist/assets/images/icons/api-user-light.svg +12 -0
  65. package/dist/assets/images/icons/api-user.svg +2 -2
  66. package/dist/assets/images/icons/comparator-light.svg +61 -0
  67. package/dist/assets/images/icons/comparator.svg +2 -2
  68. package/dist/assets/images/icons/custom-light.svg +6 -0
  69. package/dist/assets/images/icons/custom.svg +5 -5
  70. package/dist/assets/images/icons/database-light.svg +29 -0
  71. package/dist/assets/images/icons/database.svg +6 -6
  72. package/dist/assets/images/icons/db-m-light.svg +10 -0
  73. package/dist/assets/images/icons/db-m.svg +4 -4
  74. package/dist/assets/images/icons/db-token-generator-light.svg +4 -0
  75. package/dist/assets/images/icons/db-token-generator.svg +4 -0
  76. package/dist/assets/images/icons/dev-light.svg +13 -0
  77. package/dist/assets/images/icons/dev.svg +4 -4
  78. package/dist/assets/images/icons/diagram-light.svg +28 -0
  79. package/dist/assets/images/icons/diagram.svg +9 -9
  80. package/dist/assets/images/icons/event-light.svg +16 -0
  81. package/dist/assets/images/icons/event.svg +4 -4
  82. package/dist/assets/images/icons/film-movies-icon.svg +3 -3
  83. package/dist/assets/images/icons/finder-light.svg +14 -0
  84. package/dist/assets/images/icons/finder.svg +3 -3
  85. package/dist/assets/images/icons/i18n-light.svg +11 -0
  86. package/dist/assets/images/icons/i18n.svg +6 -6
  87. package/dist/assets/images/icons/increment-light.svg +5 -0
  88. package/dist/assets/images/icons/increment.svg +2 -2
  89. package/dist/assets/images/icons/license-light.svg +6 -0
  90. package/dist/assets/images/icons/license.svg +4 -4
  91. package/dist/assets/images/icons/log-light.svg +17 -0
  92. package/dist/assets/images/icons/log-profile-light.svg +23 -0
  93. package/dist/assets/images/icons/log-profile.svg +7 -7
  94. package/dist/assets/images/icons/log.svg +6 -6
  95. package/dist/assets/images/icons/masters.svg +3 -3
  96. package/dist/assets/images/icons/native-process-logs-light.svg +13 -0
  97. package/dist/assets/images/icons/native-process-logs.svg +6 -6
  98. package/dist/assets/images/icons/nodes-light.svg +5 -0
  99. package/dist/assets/images/icons/nodes.svg +2 -2
  100. package/dist/assets/images/icons/notes-light.svg +16 -0
  101. package/dist/assets/images/icons/notes.svg +2 -2
  102. package/dist/assets/images/icons/process_initializers-light.svg +20 -0
  103. package/dist/assets/images/icons/process_initializers.svg +7 -7
  104. package/dist/assets/images/icons/rsa_encryption-light.svg +6 -0
  105. package/dist/assets/images/icons/rsa_encryption.svg +2 -2
  106. package/dist/assets/images/icons/sandbox-light.svg +11 -0
  107. package/dist/assets/images/icons/sandbox.svg +2 -2
  108. package/dist/assets/images/icons/scanning-period-light.svg +13 -0
  109. package/dist/assets/images/icons/scanning-period.svg +4 -4
  110. package/dist/assets/images/icons/schedulers-light.svg +8 -0
  111. package/dist/assets/images/icons/schedulers.svg +5 -5
  112. package/dist/assets/images/icons/secret-light.svg +15 -0
  113. package/dist/assets/images/icons/secret.svg +2 -2
  114. package/dist/assets/images/icons/swagger-logo-light.svg +9 -0
  115. package/dist/assets/images/icons/swagger-logo.svg +2 -2
  116. package/dist/assets/images/icons/systems-light.svg +8 -0
  117. package/dist/assets/images/icons/systems.svg +3 -3
  118. package/dist/assets/images/icons/testing-light.svg +12 -0
  119. package/dist/assets/images/icons/testing.svg +6 -6
  120. package/dist/assets/images/icons/third-party-light.svg +19 -0
  121. package/dist/assets/images/icons/third-party.svg +4 -4
  122. package/dist/assets/images/icons/typescript-light.svg +12 -0
  123. package/dist/assets/images/icons/typescript.svg +2 -2
  124. package/dist/assets/images/icons/ui-maker-light.svg +23 -0
  125. package/dist/assets/images/icons/ui-maker.svg +10 -10
  126. package/dist/assets/images/icons/utility-light.svg +19 -0
  127. package/dist/assets/images/icons/utility.svg +2 -2
  128. package/dist/assets/images/icons/vulnerability-light.svg +20 -0
  129. package/dist/assets/images/icons/vulnerability.svg +5 -5
  130. package/dist/assets/images/icons/web-light.svg +16 -0
  131. package/dist/assets/images/icons/web.svg +3 -3
  132. package/dist/assets/images/logo/api_maker_logo_dark.svg +29 -0
  133. package/dist/assets/images/logo/api_maker_logo_full_white.svg +29 -0
  134. package/dist/assets/images/logo/api_maker_logo_light.svg +22 -0
  135. package/dist/assets/images/logo/apple-touch-icon.png +0 -0
  136. package/dist/assets/images/logo/favicon-192x192.png +0 -0
  137. package/dist/assets/images/logo/favicon-32x32.png +0 -0
  138. package/dist/assets/images/logo/favicon-512x512.png +0 -0
  139. package/dist/assets/images/logo/logo_docs-light.svg +15 -0
  140. package/dist/assets/images/logo/logo_docs.svg +3 -3
  141. package/dist/assets/images/logo/logo_store-light.svg +17 -0
  142. package/dist/assets/images/logo/logo_store.svg +3 -3
  143. package/dist/assets/images/logo/store_logo-dark.svg +11 -0
  144. package/dist/assets/images/logo/store_logo-light.svg +11 -0
  145. package/dist/assets/images/logo/store_logo.svg +2 -2
  146. package/dist/assets/primeng-theme/primeng-theme-overrides.scss +1426 -31
  147. package/dist/assets/public/diagram-viewer/index.html +59 -20
  148. package/dist/assets/public/diagram-viewer/index.js +1 -1
  149. package/dist/assets/public/monaco-editor/index.html +105 -9
  150. package/dist/assets/public/monaco-editor/index.js +1 -1
  151. package/dist/assets/public/table-viewer/index.html +124 -38
  152. package/dist/assets/schema-types/InterfaceProps.ts +71 -13
  153. package/dist/assets/schema-types/store-types.ts +2 -0
  154. package/dist/assets/schema-types/types.ts +65 -17
  155. package/dist/assets/styles/bootstrap-overrides.scss +170 -7
  156. package/dist/assets/styles/colors-dark.scss +320 -33
  157. package/dist/assets/styles/colors-light.scss +453 -9
  158. package/dist/assets/styles/out/styles.css.map +1 -1
  159. package/dist/assets/styles/styles.scss +213 -24
  160. package/dist/assets/styles/variables.scss +2 -2
  161. package/dist/bootstrap-overrides.css +1 -0
  162. package/dist/colors-dark.css +1 -0
  163. package/dist/colors-light.css +1 -0
  164. package/dist/{common.912ad7a22e5de63a.js → common.86c514055f788290.js} +1 -1
  165. package/dist/index.html +111 -27
  166. package/dist/main.0ac98a72f1b9c1dd.js +1 -0
  167. package/dist/runtime.0e9fc303007ced09.js +1 -0
  168. package/dist/styles-global.css +1 -0
  169. package/dist/{styles.242217e145c3f7ab.css → styles.c1032bc4f4d7829b.css} +1 -1
  170. package/main.js +1 -1
  171. package/package-sandbox.json +1 -1
  172. package/package.json +9 -9
  173. package/pnpm-workspace.yaml +15 -0
  174. package/sandbox.js +1 -1
  175. package/src/assets/schema-types/store-types.ts +2 -0
  176. package/src/assets/schema-types/types.ts +65 -17
  177. package/src/schema-types/store-types.js +2 -0
  178. package/src/schema-types/types.js +1 -0
  179. package/src/tools/.github/copilot-instructions.md +17 -9
  180. package/src/tools/local-client.js +1 -1
  181. package/dist/1025.a0db9347453600d0.js +0 -1
  182. package/dist/1097.d0d6fd13031aa1f0.js +0 -1
  183. package/dist/148.1dc7d9e0cfe45510.js +0 -1
  184. package/dist/1558.0aae3e5c538d3815.js +0 -1
  185. package/dist/1678.ed1e4a269e0f42bc.js +0 -1
  186. package/dist/1754.691f142aa1eabe28.js +0 -1
  187. package/dist/1928.2b376f7cf66ed038.js +0 -1
  188. package/dist/1957.ab7fda21d9978597.js +0 -1
  189. package/dist/2140.1ce150285aebe3cc.js +0 -1
  190. package/dist/2295.4fa1d4b5ff482f3a.js +0 -1
  191. package/dist/238.891233aa670bdd2b.js +0 -1
  192. package/dist/2473.4b2bb1ad5b1cc99d.js +0 -1
  193. package/dist/2579.6558b67b2d98f116.js +0 -1
  194. package/dist/2714.0d6939336a02dd0a.js +0 -1
  195. package/dist/2735.86437a8639a0c1bb.js +0 -1
  196. package/dist/292.f6482cd1a572ba4b.js +0 -1
  197. package/dist/3139.0921102d181c220d.js +0 -1
  198. package/dist/3450.9b5cfc83039b02b5.js +0 -1
  199. package/dist/3664.4a1dd7f16f8b57fb.js +0 -1
  200. package/dist/4110.d108e786ecbdfd1b.js +0 -1
  201. package/dist/4186.ac3e8af0efeeac14.js +0 -1
  202. package/dist/4211.1bfe72ce0b7b2f76.js +0 -1
  203. package/dist/443.7e3946651373e09a.js +0 -1
  204. package/dist/4575.169008cbbbae66bb.js +0 -1
  205. package/dist/4842.e7649d81606ad80d.js +0 -1
  206. package/dist/485.b546656b466cb8a4.js +0 -1
  207. package/dist/5334.72c1c6d89fdf136e.js +0 -1
  208. package/dist/5421.2067001c10533303.js +0 -1
  209. package/dist/5679.4e22239895c7f520.js +0 -1
  210. package/dist/5761.331ca41ab64cca92.js +0 -1
  211. package/dist/5765.2b640be5d177d794.js +0 -1
  212. package/dist/6236.6c0fc469f0c96549.js +0 -1
  213. package/dist/6393.173ecdfc3b022973.js +0 -1
  214. package/dist/6401.374823002788afe7.js +0 -1
  215. package/dist/6650.1d18ee25901d68be.js +0 -1
  216. package/dist/7368.9ebf62d518f8ad7a.js +0 -1
  217. package/dist/7436.640bf5fe48814cbe.js +0 -1
  218. package/dist/7470.b1ce7eedb9cedb2d.js +0 -1
  219. package/dist/7649.ab4744cfe713eec0.js +0 -1
  220. package/dist/7975.578a00ebd1160a1e.js +0 -1
  221. package/dist/7977.afeded970bac8b66.js +0 -1
  222. package/dist/7987.5958ad5b81873058.js +0 -1
  223. package/dist/8125.b2f908096882ed45.js +0 -1
  224. package/dist/8266.aca59a0a04590ab1.js +0 -1
  225. package/dist/8296.a387c28f5702c5e8.js +0 -1
  226. package/dist/885.be44d92efca1aaf6.js +0 -1
  227. package/dist/891.5e08c81e5200413e.js +0 -1
  228. package/dist/9243.08630ad94e1fddba.js +0 -1
  229. package/dist/9575.30ac91b65602c0ca.js +0 -1
  230. package/dist/9939.a3389cc6764e3cbc.js +0 -1
  231. package/dist/assets/images/logo/API Maker Logo 2021 black.svg +0 -47
  232. package/dist/assets/images/logo/API Maker Logo 2021.svg +0 -49
  233. package/dist/assets/images/logo/logo.svg +0 -41
  234. package/dist/assets/styles/out/bootstrap-overrides.css +0 -2
  235. package/dist/assets/styles/out/colors-dark.css +0 -2
  236. package/dist/assets/styles/out/colors-light.css +0 -2
  237. package/dist/assets/styles/out/monaco-editor-overrides.css +0 -2
  238. package/dist/assets/styles/out/styles.css +0 -2
  239. package/dist/assets/styles/out/variables.css +0 -2
  240. package/dist/favicon.ico +0 -0
  241. package/dist/main.2046fb4b0dd1b8e0.js +0 -1
  242. package/dist/runtime.a86d5cd27767506e.js +0 -1
@@ -66,6 +66,8 @@ export interface ISandboxReqAuthObj {
66
66
  authAMUser?: any;
67
67
  /** API Maker database user authentication token. */
68
68
  authAMDB?: any;
69
+ /** Custom authorization provided by user */
70
+ authCustom?: any;
69
71
 
70
72
  /** Google authentication token. */
71
73
  authGoogle?: any;
@@ -202,6 +204,11 @@ export interface IAuthInfoObjects {
202
204
  /** Groups/roles assigned to the API Maker database user. */
203
205
  authAMDBGroups?: any[]; // IGroup[]
204
206
 
207
+ /** Custom authorization token information */
208
+ authCustomInfo?: any;
209
+ /** Groups/roles assigned to the API Maker database user. */
210
+ authCustomGroups?: any[]; // IGroup[]
211
+
205
212
  /** Google authentication token information. */
206
213
  authGoogleInfo?: IAuthTokenGoogle;
207
214
  /** Groups/roles assigned to the Google authenticated user. */
@@ -788,7 +795,7 @@ export interface ISecretType {
788
795
  common?: ISecretTypeCommon; // it is general purpose secret key section.
789
796
  }
790
797
 
791
- export interface ISecretTypeCommon extends Pick<IAuthTokenInfoCommon, 'authTokenInfo'> {
798
+ export interface ISecretTypeCommon extends Pick<IAuthTokenInfoCommon, 'authProviders'> {
792
799
  hashingAlgorithm?: 'SHA256'; // change in IPropertyHashing also
793
800
  nonce?: string; // if it is available, it will be used for hashing, if not available secret will be used for hashing
794
801
 
@@ -811,8 +818,9 @@ export interface ISecretTypeCommon extends Pick<IAuthTokenInfoCommon, 'authToken
811
818
 
812
819
  export interface IAuthTokenInfo {
813
820
  authTokenType?: EAuthTokenType;
814
- authTokenAM?: IAuthTokenAM | IRefreshTokenAM;
815
- authTokenAMDB?: IAuthTokenAMDB | IRefreshTokenAM;
821
+ authTokenAM?: IAuthTokenAM;
822
+ authTokenAMDB?: IAuthTokenAMDBRequest;
823
+ authTokenCustom?: IAuthTokenAMDBRequest;
816
824
 
817
825
  authTokenAWS?: IAuthTokenAWS;
818
826
  authTokenAzureAD?: IAuthTokenAzureAD;
@@ -832,14 +840,18 @@ export interface IAuthTokenAM {
832
840
  expiresInSeconds?: number;
833
841
  }
834
842
 
835
- export interface IRefreshTokenAM {
836
- refresh_token: string;
837
- }
843
+ // export interface IRefreshTokenAM {
844
+ // name?: string;
845
+ // refresh_token: string;
846
+ // }
838
847
 
839
848
  /**
840
849
  * API Maker database user authentication configuration.
841
850
  */
842
- export interface IAuthTokenAMDB extends Partial<IAuthTokenAM> {
851
+ export interface IAuthTokenAMDB {
852
+ /** Name of DB authorization token generator. It will be used in get-token api with username & pass to generate token. */
853
+ name?: string;
854
+
843
855
  /** Database instance name. */
844
856
  instance?: string;
845
857
  /** Database name. */
@@ -860,9 +872,9 @@ export interface IAuthTokenAMDB extends Partial<IAuthTokenAM> {
860
872
  passwordChangedAtColumn?: string;
861
873
 
862
874
  /**
863
- * Column containing comma-separated group assignments.
864
- * Use "*" to grant access to all API user groups.
865
- * DB users can access APIs if they belong to at least one of the required groups.
875
+ * column name which holds values of, comma separated groups assigned to this db user.
876
+ * "*" = means all groups of api user.
877
+ * DB user can hit API if he/she has access in any of these groups.
866
878
  */
867
879
  groupsColumn?: string;
868
880
  /**
@@ -877,12 +889,19 @@ export interface IAuthTokenAMDB extends Partial<IAuthTokenAM> {
877
889
  sortUsersForTesting?: any;
878
890
  /** Fields to select from user records. */
879
891
  select?: any;
892
+ /** Token expiration time in seconds. */
893
+ expiresInSeconds?: number;
894
+ /** If true, code will be executed on native process otherwise executed on sandbox. */
895
+ runOnNativeProcess?: boolean;
896
+ }
880
897
 
881
- /**
882
- * Stringified request JSON data.
883
- * Internal field populated by the system.
884
- */
885
- __amDBRequestData?: string;
898
+ export interface IAuthTokenAMDBRequest {
899
+ /** Name of token generator */
900
+ name?: string;
901
+ /** Username. */
902
+ u: string;
903
+ /** Password. */
904
+ p: string;
886
905
  }
887
906
 
888
907
  /**
@@ -1332,6 +1351,22 @@ export interface IArrayOperation {
1332
1351
  upsert?: boolean;
1333
1352
  }
1334
1353
 
1354
+ /**
1355
+ * Request structure for token generation API calls.
1356
+ */
1357
+ export interface IGetTokenRequest {
1358
+ /** Name of token generator */
1359
+ name?: string;
1360
+ /** Username. */
1361
+ u: string;
1362
+ /** Password. */
1363
+ p: string;
1364
+ /** Refresh token for obtaining a new access token without re-authenticating. */
1365
+ refresh_token?: string;
1366
+ /** Token expiration time in seconds. Used to get only AM user token. */
1367
+ expiresInSeconds?: number;
1368
+ }
1369
+
1335
1370
  /**
1336
1371
  * Response structure for token generation API calls.
1337
1372
  */
@@ -1349,10 +1384,14 @@ export interface IGetTokenResponse {
1349
1384
 
1350
1385
  export interface IAuthTokenInfoCommon {
1351
1386
  apiAccessType?: EAPIAccessType; // api level setting
1352
- authTokenInfo?: IAuthTokenInfo[] | string; // string will point to secret path.
1387
+
1388
+ /** Provide names of token generators */
1389
+ authProviders?: string[];
1353
1390
  }
1354
1391
 
1355
1392
  export interface IInstanceApiSettingsTypes extends IAuthTokenInfoCommon {
1393
+ /** Folder name of this item in git. It has to be unique, and it can contain [a-zA-Z0-9_ -] characters only. */
1394
+ name?: string;
1356
1395
  enableCaching?: boolean; // collection level setting
1357
1396
  acceptOnlyEncryptedData?: boolean; // database & collection & api level setting
1358
1397
  }
@@ -1415,6 +1454,13 @@ export interface ICustomApiSettingsTypes extends IAuthTokenInfoCommon {
1415
1454
  */
1416
1455
  runOnNativeProcess?: boolean;
1417
1456
 
1457
+ /**
1458
+ * Maximum time (in seconds) the system will allow this custom API to complete its operation.
1459
+ * Converted to milliseconds and sent as the 'x-am-sandbox-timeout' header.
1460
+ * @default 10
1461
+ */
1462
+ customApiTimeoutInSeconds?: number;
1463
+
1418
1464
  /**
1419
1465
  * List of all possible error messages this API can return.
1420
1466
  * Used for API documentation and client-side error handling.
@@ -1612,6 +1658,8 @@ export enum EAuthTokenType {
1612
1658
  AM = 'AM',
1613
1659
  /** Database-backed user authentication. */
1614
1660
  AM_DB = 'AM_DB',
1661
+ /** Write your own logic to generate token and validate token */
1662
+ CUSTOM_TOKEN_GENERATOR = 'CUSTOM_TOKEN_GENERATOR',
1615
1663
  /** Google OAuth authentication. */
1616
1664
  GOOGLE = 'GOOGLE',
1617
1665
  /** AWS Cognito authentication. */
@@ -1829,7 +1877,7 @@ export interface IAMGlobalSysSystem {
1829
1877
  getSecret(): any; // we can call it without any param also, in store and in tp it will return object of that part.
1830
1878
  callExternalApi<T>(data: ICallApiFromBackend | ICallApiFromBackend[] | ICallApiFromBackendProcess | ICallApiFromBackendProcess[] | (ICallApiFromBackend | ICallApiFromBackendProcess)[]): Promise<ICallExternalApiResp<T>>;
1831
1879
  callExternalApi(data: ICallApiFromBackend | ICallApiFromBackend[] | ICallApiFromBackendProcess | ICallApiFromBackendProcess[] | (ICallApiFromBackend | ICallApiFromBackendProcess)[]): Promise<ICallExternalApiResp<any>>;
1832
- getToken(data: IAuthTokenInfo | IAuthTokenInfo[]): any;
1880
+ getToken(data: IGetTokenRequest | IGetTokenRequest[]): any;
1833
1881
  executeQuery(query: IExecuteQuery): any;
1834
1882
  /**
1835
1883
  * It should be used SQL based databases only.
@@ -9,7 +9,7 @@
9
9
  .card { border-radius: 0 !important;}
10
10
 
11
11
  .card-header {
12
- padding: .25rem .5rem;
12
+ padding: .25rem 1rem;
13
13
  font-weight: bold;
14
14
  border-radius: 0 !important;
15
15
  }
@@ -43,20 +43,136 @@
43
43
  .modal-header {
44
44
  line-height: 1.5rem; // to keep header text in vertically center.
45
45
  font-weight: bold;
46
+ align-items: center; // vertically centre the title + close button (Bootstrap defaults to flex-start)
46
47
  }
47
48
 
48
- .modal-header .close {
49
- padding: .25rem .5rem;
50
- margin: -0.25rem -0.5rem -0.25rem auto;
51
- //border-left: $border-style;
49
+ // New UI standard: round close button. Geometry here is theme-agnostic (same in
50
+ // dark & light); the surface/border/hover colours live in colors-dark/-light.scss.
51
+ // Covers both the in-header close button AND the absolutely-positioned close that
52
+ // some full-screen modals (e.g. the test-case layout) drop straight into .modal-content.
53
+ .modal-header .close,
54
+ .modal-content > .close {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ width: 1.75rem;
59
+ height: 1.75rem;
60
+ padding: 0;
61
+ vertical-align: middle; // centre against sibling inline content (some headers wrap it in a float-right div)
62
+ border-radius: 50%;
63
+ line-height: 1;
64
+ opacity: 1; // Bootstrap dims .close to 0.5 by default
65
+ transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
66
+
67
+ // the X glyph sits centred; sized to the round button
68
+ span { display: inline-flex; }
69
+ i { font-size: 0.95rem; line-height: 1; }
70
+
71
+ // Normalise the close glyph app-wide. Modals use three different close icons:
72
+ // fa-window-close (\f410, boxy square) · fa-times-circle (\f057, circled X)
73
+ // · fa-times (\f00d, plain X). The first two read as a "box/circle inside the
74
+ // round button". Force them all to a clean plain X (\f00d) so every modal's
75
+ // round close button is identical, without editing each template.
76
+ // (Font Awesome 5 Free, solid weight 900.)
77
+ i.fa-window-close::before,
78
+ i.fa-times-circle::before { content: "\f00d"; }
79
+ }
80
+ // Flush-right only when it's a flex child of the header (not the absolutely-positioned variant).
81
+ .modal-header .close { margin: 0 0 0 auto; }
82
+ // Absolutely-positioned corner close (test-case / system-logs full-screen modals): its sibling
83
+ // action icons sit at the same inline `top: 0.25rem` but on a 1.3rem (`line-height-1-3`) line, so
84
+ // their centre is at 0.9rem; the 1.75rem round button pinned at the same top centres at 1.125rem —
85
+ // ~0.225rem lower. Pull it up by exactly that half-height difference so it lines up with the icons.
86
+ .modal-content > .close { margin-top: -0.225rem; }
87
+ .modal-header .close:hover,
88
+ .modal-header .close:focus { opacity: 1; outline: none; }
89
+
90
+ // Some modals group the close button with a docs link / info icon in a
91
+ // `float-right` wrapper. Those children have different heights (e.g. the 25px
92
+ // docs logo), so on a shared inline baseline the round close button reads as
93
+ // off-centre. Lay the wrapper out as a centred flex row so every action—incl.
94
+ // the close button—sits on one vertically-centred line. Order keeps Close last.
95
+ .modal-header > .float-right {
96
+ float: none !important;
97
+ display: inline-flex;
98
+ align-items: center;
99
+ gap: 0.65rem; // even, comfortable spacing between header actions (docs / info / close)
100
+ margin-left: auto; // push the action group to the right edge…
101
+ padding-left: 1rem; // …but never let it crowd the title text
102
+ }
103
+ .modal-header > .float-right .close { margin: 0; order: 1; }
104
+
105
+ // New UI standard: header action icons (docs logo + info / help glyphs) share a
106
+ // consistent size and sit centred next to the round close button. Drop the ad-hoc
107
+ // inline sizing/margins (font-size:25px, ml-2/3, mt-n1/n2) the templates carry.
108
+ .modal-header > .float-right {
109
+ // Docs wordmark logo — fixed height (the SVG is 235×145, so width auto keeps ratio),
110
+ // a touch recessed, brightening on hover like a link.
111
+ a {
112
+ display: inline-flex;
113
+ align-items: center;
114
+ margin: 0 !important;
115
+ }
116
+ img {
117
+ height: 20px !important;
118
+ width: auto !important;
119
+ margin: 0 !important; // neutralise mt-n1/n2 + ml/mr that skewed centring
120
+ opacity: 0.9;
121
+ transition: opacity 0.15s ease;
122
+ }
123
+ a:hover img { opacity: 1; }
124
+
125
+ // Info / help action — normalise the inline font-size:1.4em + harsh text-info to
126
+ // a consistent glyph that matches the close button's scale and brand colour.
127
+ > span {
128
+ font-size: 1rem !important;
129
+ display: inline-flex;
130
+ align-items: center;
131
+ margin: 0 !important;
132
+ }
133
+ > span i { font-size: 1.15rem; line-height: 1; transition: color 0.15s ease; }
52
134
  }
53
135
 
54
136
  .nav-link { padding: 0.5rem 1rem !important;}
55
137
 
138
+ // Pin navbar item metrics so swapping bootswatch themes (slate <-> cerulean) can't reflow the
139
+ // navbar (prevents the menu "dancing" on dark/light toggle). Theme-agnostic — same in both modes.
140
+ .navbar { min-height: 44px; }
141
+ .navbar-nav .nav-link {
142
+ padding: 0.5rem 1rem !important;
143
+ line-height: 1.5 !important;
144
+ font-size: $font-size !important;
145
+ font-weight: 400 !important;
146
+ }
147
+ .navbar-nav .nav-link.active,
148
+ .navbar-nav .nav-item.show > .nav-link { font-weight: 400 !important; } // no bold jump on active
149
+
150
+ // Menu (dropdown) separator — brand-tinted hairline, visible in both themes.
151
+ .dropdown-divider {
152
+ border-top: 1px solid rgba(97, 175, 239, 0.20);
153
+ margin: 0.3rem 0.5rem;
154
+ }
155
+
156
+ // Pin heading sizes so the bootswatch slate/cerulean swap renders them identically (same in dark & light).
157
+ h1, .h1 { font-size: 2.5rem !important; }
158
+ h2, .h2 { font-size: 2rem !important; }
159
+ h3, .h3 { font-size: 1.75rem !important; }
160
+ h4, .h4 { font-size: 1.40625rem !important; }
161
+ h5, .h5 { font-size: 1.171875rem !important; }
162
+ h6, .h6 { font-size: 0.9375rem !important; }
163
+
164
+ // Heading standard (theme-agnostic) — spacing/weight/line-height. Color is set per theme.
165
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
166
+ margin-bottom: 0.5rem;
167
+ font-weight: 500;
168
+ line-height: 1.2;
169
+ }
170
+
56
171
  .nav-pills .nav-link, .nav-tabs .nav-link, .nav-tabs .nav-link:hover {color: var(--content-primary--shade--four);}
57
172
 
58
173
  .navbar-brand {
59
- padding-top: 0.3125rem !important;
174
+ //padding-top: 0.3125rem !important;
175
+ padding-top: 0 !important;
60
176
  padding-bottom: 0.3125rem !important;
61
177
  font-size: 1.25rem !important;
62
178
  }
@@ -67,7 +183,28 @@
67
183
  border: none !important;
68
184
  }
69
185
 
70
- .form-control-sm, .col-form-label-sm { font-size: $font-size;}
186
+ // ==== Consistent input HEIGHT across both themes ====
187
+ // bootswatch slate (dark) and cerulean (light) ship DIFFERENT .form-control padding +
188
+ // font-size, and since the height is calc(1.5em + padding + 2px) (em-based) the inputs
189
+ // render at different heights per theme. Pin font-size + padding + line-height + border
190
+ // so every input is identical in dark & light, everywhere in the app.
191
+ .form-control {
192
+ font-size: $font-size !important; // 0.875rem
193
+ padding: 0.375rem 0.75rem !important;
194
+ line-height: 1.5 !important;
195
+ border-width: 1px !important;
196
+ height: calc(1.5em + 0.75rem + 2px) !important;
197
+ }
198
+ .form-control-sm, .col-form-label-sm { font-size: $font-size !important; }
199
+ .form-control-sm {
200
+ padding: 0.25rem 0.5rem !important;
201
+ line-height: 1.5 !important;
202
+ border-width: 1px !important;
203
+ height: calc(1.5em + 0.5rem + 2px) !important;
204
+ }
205
+ // input-group prefix/suffix boxes must match the input height (same padding/line-height/font).
206
+ .input-group-sm .input-group-text, .input-group-sm .form-control { font-size: $font-size !important; }
207
+ textarea.form-control, textarea.form-control-sm { height: auto !important; } // textareas size to rows
71
208
 
72
209
  //.modal-content { max-height: calc(100vh - 72px);}
73
210
  .modal-content { max-height: calc(100vh - 68px); } // 72px is giving scroll in case of log profile.
@@ -92,3 +229,29 @@
92
229
 
93
230
  // file upload classes
94
231
  .custom-file-input:lang(en) ~ .custom-file-label::after {padding: 5px; height: 30px;}
232
+
233
+ // Override Bootswatch's harsh .btn black border + text-shadow (doesn't suit the brand gradient buttons).
234
+ .btn {
235
+ border-color: transparent;
236
+ text-shadow: none;
237
+ }
238
+
239
+ // ==== Consistent button HEIGHT + font across both themes ====
240
+ // Same root cause as inputs: bootswatch slate (dark) uses padding 0.75rem 1rem / font 0.9375rem,
241
+ // cerulean (light) uses 0.375rem 0.75rem / font 1rem — so buttons render at different heights per
242
+ // theme. Pin font-size + padding + line-height + border so buttons are identical in dark & light.
243
+ // EXCLUDE explicitly-sized icon buttons (.btn-xsm-custom, .btn-icon-only) — they set their
244
+ // own width/height/padding and must not be re-padded by these consistency rules.
245
+ .btn:not(.btn-xsm-custom):not(.btn-icon-only) {
246
+ font-size: $font-size !important; // 0.875rem
247
+ padding: 0.375rem 0.75rem !important;
248
+ line-height: 1.5 !important;
249
+ border-width: 1px !important;
250
+ }
251
+ .btn-sm:not(.btn-xsm-custom):not(.btn-icon-only),
252
+ .btn-group-sm > .btn:not(.btn-xsm-custom):not(.btn-icon-only) {
253
+ font-size: $font-size !important;
254
+ padding: 0.25rem 0.5rem !important;
255
+ line-height: 1.5 !important;
256
+ border-width: 1px !important;
257
+ }