caprover-api 0.0.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 (136) hide show
  1. package/.prettierrc.json +6 -0
  2. package/.vscode/settings.json +6 -0
  3. package/.yarnrc.yml +1 -0
  4. package/README.md +44 -0
  5. package/dist/api/ApiManager.d.ts +114 -0
  6. package/dist/api/ApiManager.js +486 -0
  7. package/dist/api/ErrorFactory.d.ts +26 -0
  8. package/dist/api/ErrorFactory.js +35 -0
  9. package/dist/api/HttpClient.d.ts +16 -0
  10. package/dist/api/HttpClient.js +130 -0
  11. package/dist/example.d.ts +1 -0
  12. package/dist/example.js +30 -0
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.js +43 -0
  15. package/dist/models/AppDefinition.d.ts +105 -0
  16. package/dist/models/AppDefinition.js +2 -0
  17. package/dist/models/AppDefinitionsResponse.d.ts +7 -0
  18. package/dist/models/AppDefinitionsResponse.js +2 -0
  19. package/dist/models/AppDeleteResponse.d.ts +3 -0
  20. package/dist/models/AppDeleteResponse.js +2 -0
  21. package/dist/models/AutomatedCleanupConfigs.d.ts +12 -0
  22. package/dist/models/AutomatedCleanupConfigs.js +15 -0
  23. package/dist/models/BackupMeta.d.ts +19 -0
  24. package/dist/models/BackupMeta.js +2 -0
  25. package/dist/models/BuildLogsResponse.d.ts +8 -0
  26. package/dist/models/BuildLogsResponse.js +2 -0
  27. package/dist/models/CapRoverTheme.d.ts +10 -0
  28. package/dist/models/CapRoverTheme.js +2 -0
  29. package/dist/models/CaptainInfo.d.ts +6 -0
  30. package/dist/models/CaptainInfo.js +2 -0
  31. package/dist/models/ContainerProps.d.ts +3 -0
  32. package/dist/models/ContainerProps.js +2 -0
  33. package/dist/models/DockerAuthObj.d.ts +11 -0
  34. package/dist/models/DockerAuthObj.js +2 -0
  35. package/dist/models/DockerSecret.d.ts +4 -0
  36. package/dist/models/DockerSecret.js +2 -0
  37. package/dist/models/DockerService.d.ts +99 -0
  38. package/dist/models/DockerService.js +2 -0
  39. package/dist/models/GoAccessInfo.d.ts +7 -0
  40. package/dist/models/GoAccessInfo.js +2 -0
  41. package/dist/models/GoAccessReportResponse.d.ts +6 -0
  42. package/dist/models/GoAccessReportResponse.js +2 -0
  43. package/dist/models/IBuiltImage.d.ts +4 -0
  44. package/dist/models/IBuiltImage.js +2 -0
  45. package/dist/models/ICaptainDefinition.d.ts +7 -0
  46. package/dist/models/ICaptainDefinition.js +2 -0
  47. package/dist/models/IGoAccessInfo.d.ts +7 -0
  48. package/dist/models/IGoAccessInfo.js +2 -0
  49. package/dist/models/IHashMapGeneric.d.ts +3 -0
  50. package/dist/models/IHashMapGeneric.js +2 -0
  51. package/dist/models/IImageSource.d.ts +12 -0
  52. package/dist/models/IImageSource.js +2 -0
  53. package/dist/models/IOneClickAppModels.d.ts +45 -0
  54. package/dist/models/IOneClickAppModels.js +2 -0
  55. package/dist/models/IProFeatures.d.ts +32 -0
  56. package/dist/models/IProFeatures.js +14 -0
  57. package/dist/models/IRegistryInfo.d.ts +21 -0
  58. package/dist/models/IRegistryInfo.js +8 -0
  59. package/dist/models/IServerBlockDetails.d.ts +17 -0
  60. package/dist/models/IServerBlockDetails.js +2 -0
  61. package/dist/models/IVersionInfo.d.ts +6 -0
  62. package/dist/models/IVersionInfo.js +2 -0
  63. package/dist/models/LoadBalancerInfo.d.ts +9 -0
  64. package/dist/models/LoadBalancerInfo.js +2 -0
  65. package/dist/models/LogsResponse.d.ts +3 -0
  66. package/dist/models/LogsResponse.js +2 -0
  67. package/dist/models/NetDataInfo.d.ts +27 -0
  68. package/dist/models/NetDataInfo.js +2 -0
  69. package/dist/models/NginxConfig.d.ts +10 -0
  70. package/dist/models/NginxConfig.js +2 -0
  71. package/dist/models/OneClickAppDefinitionResponse.d.ts +3 -0
  72. package/dist/models/OneClickAppDefinitionResponse.js +2 -0
  73. package/dist/models/OneClickAppRepositories.d.ts +3 -0
  74. package/dist/models/OneClickAppRepositories.js +2 -0
  75. package/dist/models/OneClickAppResponse.d.ts +4 -0
  76. package/dist/models/OneClickAppResponse.js +2 -0
  77. package/dist/models/OtherTypes.d.ts +29 -0
  78. package/dist/models/OtherTypes.js +2 -0
  79. package/dist/models/ProjectDefinition.d.ts +6 -0
  80. package/dist/models/ProjectDefinition.js +2 -0
  81. package/dist/models/ProjectsResponse.d.ts +4 -0
  82. package/dist/models/ProjectsResponse.js +2 -0
  83. package/dist/models/RegistriesResponse.d.ts +5 -0
  84. package/dist/models/RegistriesResponse.js +2 -0
  85. package/dist/models/ServerDockerInfo.d.ts +14 -0
  86. package/dist/models/ServerDockerInfo.js +2 -0
  87. package/dist/models/UnusedImagesResponse.d.ts +6 -0
  88. package/dist/models/UnusedImagesResponse.js +2 -0
  89. package/dist/models/index.d.ts +40 -0
  90. package/dist/models/index.js +56 -0
  91. package/package.json +30 -0
  92. package/src/api/ApiManager.ts +825 -0
  93. package/src/api/ErrorFactory.ts +35 -0
  94. package/src/api/HttpClient.ts +143 -0
  95. package/src/example.ts +36 -0
  96. package/src/index.ts +5 -0
  97. package/src/models/AppDefinition.ts +124 -0
  98. package/src/models/AppDefinitionsResponse.ts +8 -0
  99. package/src/models/AppDeleteResponse.ts +3 -0
  100. package/src/models/AutomatedCleanupConfigs.ts +18 -0
  101. package/src/models/BackupMeta.ts +26 -0
  102. package/src/models/BuildLogsResponse.ts +5 -0
  103. package/src/models/CapRoverTheme.ts +11 -0
  104. package/src/models/CaptainInfo.ts +6 -0
  105. package/src/models/ContainerProps.ts +3 -0
  106. package/src/models/DockerAuthObj.ts +25 -0
  107. package/src/models/DockerSecret.ts +4 -0
  108. package/src/models/DockerService.ts +117 -0
  109. package/src/models/GoAccessInfo.ts +7 -0
  110. package/src/models/GoAccessReportResponse.ts +6 -0
  111. package/src/models/IBuiltImage.ts +4 -0
  112. package/src/models/ICaptainDefinition.ts +7 -0
  113. package/src/models/IGoAccessInfo.ts +7 -0
  114. package/src/models/IHashMapGeneric.ts +3 -0
  115. package/src/models/IImageSource.ts +10 -0
  116. package/src/models/IOneClickAppModels.ts +51 -0
  117. package/src/models/IProFeatures.ts +39 -0
  118. package/src/models/IRegistryInfo.ts +30 -0
  119. package/src/models/IServerBlockDetails.ts +18 -0
  120. package/src/models/IVersionInfo.ts +6 -0
  121. package/src/models/LoadBalancerInfo.ts +11 -0
  122. package/src/models/LogsResponse.ts +3 -0
  123. package/src/models/NetDataInfo.ts +27 -0
  124. package/src/models/NginxConfig.ts +10 -0
  125. package/src/models/OneClickAppDefinitionResponse.ts +3 -0
  126. package/src/models/OneClickAppRepositories.ts +3 -0
  127. package/src/models/OneClickAppResponse.ts +5 -0
  128. package/src/models/OtherTypes.ts +32 -0
  129. package/src/models/ProjectDefinition.ts +6 -0
  130. package/src/models/ProjectsResponse.ts +5 -0
  131. package/src/models/RegistriesResponse.ts +6 -0
  132. package/src/models/ServerDockerInfo.ts +14 -0
  133. package/src/models/UnusedImagesResponse.ts +3 -0
  134. package/src/models/index.ts +41 -0
  135. package/tsconfig.json +14 -0
  136. package/tslint.json +46 -0
@@ -0,0 +1,51 @@
1
+ import { IHashMapGeneric } from './IHashMapGeneric'
2
+
3
+ export interface IOneClickAppIdentifier {
4
+ sortScore?: number // 0-1 and dynamically calculated based on search terms
5
+ isOfficial?: boolean
6
+ name: string
7
+ displayName: string
8
+ description: string
9
+ logoUrl: string
10
+ baseUrl: string
11
+ }
12
+
13
+ export interface IOneClickVariable {
14
+ id: string
15
+ label: string
16
+ defaultValue?: string
17
+ validRegex?: string
18
+ description?: string
19
+ }
20
+
21
+ export interface IDockerComposeService {
22
+ image?: string
23
+ volumes?: string[]
24
+ ports?: string[]
25
+ environment?: IHashMapGeneric<string>
26
+ depends_on?: string[]
27
+ hostname?: string
28
+ cap_add?: string[]
29
+ command?: string | string[]
30
+
31
+ // These are CapRover property, not DockerCompose. We use this instead of image if we need to extend the image.
32
+ caproverExtra?: {
33
+ dockerfileLines?: string[]
34
+ containerHttpPort: number
35
+ notExposeAsWebApp: boolean // This is actually a string "true", make sure to double negate!
36
+ websocketSupport: boolean // This is actually a string "true", make sure to double negate!
37
+ }
38
+ }
39
+
40
+ export interface IOneClickTemplate {
41
+ services: IHashMapGeneric<IDockerComposeService>
42
+ captainVersion: number
43
+ caproverOneClickApp: {
44
+ instructions: {
45
+ start: string
46
+ end: string
47
+ }
48
+ displayName: string
49
+ variables: IOneClickVariable[]
50
+ }
51
+ }
@@ -0,0 +1,39 @@
1
+ export interface IProFeatures {
2
+ isFeatureFlagEnabled: boolean
3
+ isSubscribed: boolean
4
+ }
5
+
6
+ export interface TwoFactorAuthResponse {
7
+ isEnabled: boolean
8
+ otpPath?: string
9
+ }
10
+
11
+ export interface TwoFactorAuthRequest {
12
+ enabled: boolean
13
+ token?: string
14
+ }
15
+
16
+ export enum ProAlertActionType {
17
+ email = 'email',
18
+ webhook = 'webhook',
19
+ }
20
+
21
+ export interface ProAlertAction {
22
+ actionType: ProAlertActionType
23
+ metadata?: any
24
+ }
25
+
26
+ export enum ProAlertEvent {
27
+ UserLoggedIn = 'UserLoggedIn',
28
+ AppBuildSuccessful = 'AppBuildSuccessful',
29
+ AppBuildFailed = 'AppBuildFailed',
30
+ }
31
+
32
+ export interface ProAlertConfig {
33
+ event: ProAlertEvent
34
+ action: ProAlertAction
35
+ }
36
+
37
+ export interface IProConfig {
38
+ alerts: ProAlertConfig[]
39
+ }
@@ -0,0 +1,30 @@
1
+ export class IRegistryTypes {
2
+ static readonly LOCAL_REG = 'LOCAL_REG'
3
+ static readonly REMOTE_REG = 'REMOTE_REG'
4
+ }
5
+
6
+ export type IRegistryType = 'LOCAL_REG' | 'REMOTE_REG'
7
+
8
+ export interface IRegistryInfo {
9
+ id: string
10
+ registryUser: string
11
+ registryPassword: string
12
+
13
+ registryDomain: string
14
+
15
+ registryImagePrefix: string
16
+
17
+ registryType: IRegistryType
18
+ }
19
+
20
+ export interface IRegistryInfoEncrypted {
21
+ id: string
22
+ registryUser: string
23
+ registryPasswordEncrypted: string
24
+
25
+ registryDomain: string
26
+
27
+ registryImagePrefix: string
28
+
29
+ registryType: IRegistryType
30
+ }
@@ -0,0 +1,18 @@
1
+ export interface IServerBlockDetails {
2
+ hasSsl: boolean
3
+ forceSsl: boolean
4
+ websocketSupport: boolean
5
+ publicDomain: string
6
+ localDomain: string
7
+ nginxConfigTemplate: string
8
+ containerHttpPort: number
9
+ httpBasicAuth?: string
10
+ httpBasicAuthPath?: string
11
+
12
+ crtPath?: string
13
+ keyPath?: string
14
+ customErrorPagesDirectory: string
15
+ staticWebRoot: string
16
+ redirectToPath?: string
17
+ logAccessPath?: string
18
+ }
@@ -0,0 +1,6 @@
1
+ export interface IVersionInfo {
2
+ currentVersion: string
3
+ latestVersion: string
4
+ canUpdate: boolean
5
+ changeLogMessage: string
6
+ }
@@ -0,0 +1,11 @@
1
+ export default interface LoadBalancerInfo {
2
+ activeConnections: number
3
+
4
+ accepted: number
5
+ handled: number
6
+ total: number
7
+
8
+ reading: number
9
+ writing: number
10
+ waiting: number
11
+ }
@@ -0,0 +1,3 @@
1
+ export default interface LogsResponse {
2
+ logs: string
3
+ }
@@ -0,0 +1,27 @@
1
+ export interface NetDataInfo {
2
+ isEnabled: boolean
3
+ netDataUrl: string
4
+ data: {
5
+ smtp: {
6
+ to: string
7
+ hostname: string
8
+ server: string
9
+ port: string
10
+ allowNonTls: string
11
+ username: string
12
+ password: string
13
+ }
14
+ slack: {
15
+ hook: string
16
+ channel: string
17
+ }
18
+ telegram: {
19
+ chatId: string
20
+ botToken: string
21
+ }
22
+ pushBullet: {
23
+ apiToken: string
24
+ fallbackEmail: string
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,10 @@
1
+ export default interface NginxConfig {
2
+ baseConfig: {
3
+ byDefault: string
4
+ customValue: string
5
+ }
6
+ captainConfig: {
7
+ byDefault: string
8
+ customValue: string
9
+ }
10
+ }
@@ -0,0 +1,3 @@
1
+ export default interface OneClickAppDefinitionResponse {
2
+ appTemplate: string
3
+ }
@@ -0,0 +1,3 @@
1
+ export default interface OneClickAppRepositories {
2
+ urls: string[]
3
+ }
@@ -0,0 +1,5 @@
1
+ import { IOneClickAppIdentifier } from './IOneClickAppModels'
2
+
3
+ export default interface OneClickAppResponse {
4
+ oneClickApps: IOneClickAppIdentifier[]
5
+ }
@@ -0,0 +1,32 @@
1
+ import { IAppDef } from './AppDefinition'
2
+
3
+ export type CaptainError = {
4
+ captainErrorType: number
5
+ apiMessage: string
6
+ }
7
+
8
+ export type AnyError = any
9
+
10
+ export type PreDeployFunction = (
11
+ appDef: IAppDef | undefined,
12
+ updatedData: any
13
+ ) => Promise<void>
14
+
15
+ export interface IDockerApiPort {
16
+ Protocol: string
17
+ TargetPort: number
18
+ PublishedPort: number
19
+ PublishMode?: 'ingress' | 'host'
20
+ }
21
+
22
+ export interface IDockerContainerResource {
23
+ Limits?: { NanoCPUs?: number; MemoryBytes?: number }
24
+ Reservation?: { NanoCPUs?: number; MemoryBytes?: number }
25
+ }
26
+
27
+ export interface ITemplate {
28
+ templateName: string
29
+ dockerHubImageName: string
30
+ tagSuffix: string
31
+ postFromLines?: string
32
+ }
@@ -0,0 +1,6 @@
1
+ export interface ProjectDefinition {
2
+ id: string
3
+ name: string
4
+ description: string
5
+ parentProjectId?: string
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ProjectDefinition } from './ProjectDefinition'
2
+
3
+ export default interface ProjectsResponse {
4
+ projects: ProjectDefinition[]
5
+ }
@@ -0,0 +1,6 @@
1
+ import { IRegistryInfo } from './IRegistryInfo'
2
+
3
+ export default interface RegistriesResponse {
4
+ registries: IRegistryInfo[]
5
+ defaultRegistryId?: string
6
+ }
@@ -0,0 +1,14 @@
1
+ export interface ServerDockerInfo {
2
+ nodeId: string
3
+ type: 'manager' | 'worker'
4
+ isLeader: boolean
5
+ hostname: string
6
+ architecture: string
7
+ operatingSystem: string
8
+ nanoCpu: number
9
+ memoryBytes: number
10
+ dockerEngineVersion: string
11
+ ip: string
12
+ state: string
13
+ status: string
14
+ }
@@ -0,0 +1,3 @@
1
+ export default interface UnusedImagesResponse {
2
+ images: { id: string; tags: string[] }[]
3
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @file Automatically generated by barrelsby.
3
+ */
4
+
5
+ export * from './AppDefinition'
6
+ export * from './AppDefinitionsResponse'
7
+ export * from './AppDeleteResponse'
8
+ export * from './AutomatedCleanupConfigs'
9
+ export * from './BackupMeta'
10
+ export * from './BuildLogsResponse'
11
+ export * from './CapRoverTheme'
12
+ export * from './CaptainInfo'
13
+ export * from './ContainerProps'
14
+ export * from './DockerAuthObj'
15
+ export * from './DockerSecret'
16
+ export * from './DockerService'
17
+ export * from './GoAccessInfo'
18
+ export * from './GoAccessReportResponse'
19
+ export * from './IBuiltImage'
20
+ export * from './ICaptainDefinition'
21
+ export * from './IGoAccessInfo'
22
+ export * from './IHashMapGeneric'
23
+ export * from './IImageSource'
24
+ export * from './IOneClickAppModels'
25
+ export * from './IProFeatures'
26
+ export * from './IRegistryInfo'
27
+ export * from './IServerBlockDetails'
28
+ export * from './IVersionInfo'
29
+ export * from './LoadBalancerInfo'
30
+ export * from './LogsResponse'
31
+ export * from './NetDataInfo'
32
+ export * from './NginxConfig'
33
+ export * from './OneClickAppDefinitionResponse'
34
+ export * from './OneClickAppRepositories'
35
+ export * from './OneClickAppResponse'
36
+ export * from './OtherTypes'
37
+ export * from './ProjectDefinition'
38
+ export * from './ProjectsResponse'
39
+ export * from './RegistriesResponse'
40
+ export * from './ServerDockerInfo'
41
+ export * from './UnusedImagesResponse'
package/tsconfig.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "commonjs",
5
+ "moduleResolution": "Node",
6
+ "declaration": true,
7
+ "outDir": "./dist",
8
+ "esModuleInterop": true,
9
+ "forceConsistentCasingInFileNames": true,
10
+ "strict": true,
11
+ "skipLibCheck": true
12
+ },
13
+ "include": ["src"]
14
+ }
package/tslint.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "jsRules": {
3
+ "no-empty": true
4
+ },
5
+ "rules": {
6
+ "class-name": true,
7
+ "comment-format": [true, "check-space"],
8
+ "indent": [true, "spaces"],
9
+ "one-line": [true, "check-open-brace", "check-whitespace"],
10
+ "no-var-keyword": true,
11
+ //"quotemark": [true, "single", "avoid-escape"],
12
+ "semicolon": [true, "never", "ignore-bound-class-methods"],
13
+ "whitespace": [
14
+ true,
15
+ "check-branch",
16
+ "check-decl",
17
+ "check-operator",
18
+ "check-module",
19
+ "check-separator",
20
+ "check-type"
21
+ ],
22
+ "typedef-whitespace": [
23
+ true,
24
+ {
25
+ "call-signature": "nospace",
26
+ "index-signature": "nospace",
27
+ "parameter": "nospace",
28
+ "property-declaration": "nospace",
29
+ "variable-declaration": "nospace"
30
+ },
31
+ {
32
+ "call-signature": "onespace",
33
+ "index-signature": "onespace",
34
+ "parameter": "onespace",
35
+ "property-declaration": "onespace",
36
+ "variable-declaration": "onespace"
37
+ }
38
+ ],
39
+ "no-internal-module": true,
40
+ "no-trailing-whitespace": true,
41
+ "no-null-keyword": true,
42
+ //"prefer-const": true,
43
+ "jsdoc-format": true
44
+ },
45
+ "extends": ["tslint-config-prettier"]
46
+ }