indraq_cli 1.5.8 → 1.9.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.
- package/LICENSE +21 -21
- package/README.md +1517 -1686
- package/cloud-api/.dockerignore +18 -0
- package/cloud-api/.env.example +14 -0
- package/cloud-api/Dockerfile +19 -0
- package/cloud-api/README.md +141 -0
- package/cloud-api/package-lock.json +2250 -0
- package/cloud-api/package.json +29 -0
- package/cloud-api/sql/001_init.sql +8 -0
- package/cloud-api/sql/002_user_providers_and_project_resources.sql +40 -0
- package/cloud-api/sql/003_environment_infrastructure.sql +19 -0
- package/cloud-api/sql/004_managed_aws_credentials.sql +20 -0
- package/cloud-api/sql/005_project_members_and_resource_grants.sql +22 -0
- package/cloud-api/sql/006_catalog_identity_password_security.sql +96 -0
- package/cloud-api/sql/007_aws_access_key_rotation.sql +16 -0
- package/cloud-api/src/index.ts +1254 -0
- package/cloud-api/tsconfig.json +18 -0
- package/dist/cli/create-program.d.ts.map +1 -1
- package/dist/cli/create-program.js +21 -3
- package/dist/cli/create-program.js.map +1 -1
- package/dist/cli/doctor.command.d.ts +1 -1
- package/dist/cli/doctor.command.d.ts.map +1 -1
- package/dist/cli/doctor.command.js +70 -12
- package/dist/cli/doctor.command.js.map +1 -1
- package/dist/cli/help-content.d.ts +1 -1
- package/dist/cli/help-content.d.ts.map +1 -1
- package/dist/cli/help-content.js +256 -177
- package/dist/cli/help-content.js.map +1 -1
- package/dist/modules/access/commands/access.command.d.ts +3 -0
- package/dist/modules/access/commands/access.command.d.ts.map +1 -0
- package/dist/modules/access/commands/access.command.js +226 -0
- package/dist/modules/access/commands/access.command.js.map +1 -0
- package/dist/modules/access/index.d.ts +3 -0
- package/dist/modules/access/index.d.ts.map +1 -0
- package/dist/modules/access/index.js +11 -0
- package/dist/modules/access/index.js.map +1 -0
- package/dist/modules/aws/commands/configure-aws.command.d.ts +2 -0
- package/dist/modules/aws/commands/configure-aws.command.d.ts.map +1 -0
- package/dist/modules/aws/commands/configure-aws.command.js +7 -0
- package/dist/modules/aws/commands/configure-aws.command.js.map +1 -0
- package/dist/modules/aws/commands/dns.command.d.ts +22 -0
- package/dist/modules/aws/commands/dns.command.d.ts.map +1 -0
- package/dist/modules/aws/commands/dns.command.js +229 -0
- package/dist/modules/aws/commands/dns.command.js.map +1 -0
- package/dist/modules/aws/commands/healthcheck.command.d.ts +22 -0
- package/dist/modules/aws/commands/healthcheck.command.d.ts.map +1 -0
- package/dist/modules/aws/commands/healthcheck.command.js +125 -0
- package/dist/modules/aws/commands/healthcheck.command.js.map +1 -0
- package/dist/modules/aws/commands/iam.command.d.ts +24 -0
- package/dist/modules/aws/commands/iam.command.d.ts.map +1 -0
- package/dist/modules/aws/commands/iam.command.js +219 -0
- package/dist/modules/aws/commands/iam.command.js.map +1 -0
- package/dist/modules/aws/config/aws-config.d.ts +23 -0
- package/dist/modules/aws/config/aws-config.d.ts.map +1 -0
- package/dist/modules/aws/config/aws-config.js +72 -0
- package/dist/modules/aws/config/aws-config.js.map +1 -0
- package/dist/modules/aws/index.d.ts +3 -0
- package/dist/modules/aws/index.d.ts.map +1 -0
- package/dist/modules/aws/index.js +54 -0
- package/dist/modules/aws/index.js.map +1 -0
- package/dist/modules/aws/services/aws-clients.d.ts +9 -0
- package/dist/modules/aws/services/aws-clients.d.ts.map +1 -0
- package/dist/modules/aws/services/aws-clients.js +43 -0
- package/dist/modules/aws/services/aws-clients.js.map +1 -0
- package/dist/modules/aws/services/route53-lookup.service.d.ts +9 -0
- package/dist/modules/aws/services/route53-lookup.service.d.ts.map +1 -0
- package/dist/modules/aws/services/route53-lookup.service.js +57 -0
- package/dist/modules/aws/services/route53-lookup.service.js.map +1 -0
- package/dist/modules/cloud/commands/cloud.command.d.ts +38 -0
- package/dist/modules/cloud/commands/cloud.command.d.ts.map +1 -0
- package/dist/modules/cloud/commands/cloud.command.js +443 -0
- package/dist/modules/cloud/commands/cloud.command.js.map +1 -0
- package/dist/modules/cloud/commands/credentials.command.d.ts +5 -0
- package/dist/modules/cloud/commands/credentials.command.d.ts.map +1 -0
- package/dist/modules/cloud/commands/credentials.command.js +25 -0
- package/dist/modules/cloud/commands/credentials.command.js.map +1 -0
- package/dist/modules/cloud/commands/environment.command.d.ts +6 -0
- package/dist/modules/cloud/commands/environment.command.d.ts.map +1 -0
- package/dist/modules/cloud/commands/environment.command.js +75 -0
- package/dist/modules/cloud/commands/environment.command.js.map +1 -0
- package/dist/modules/cloud/commands/provider.command.d.ts +3 -0
- package/dist/modules/cloud/commands/provider.command.d.ts.map +1 -0
- package/dist/modules/cloud/commands/provider.command.js +193 -0
- package/dist/modules/cloud/commands/provider.command.js.map +1 -0
- package/dist/modules/cloud/config/cloud-config.d.ts +19 -0
- package/dist/modules/cloud/config/cloud-config.d.ts.map +1 -0
- package/dist/modules/cloud/config/cloud-config.js +53 -0
- package/dist/modules/cloud/config/cloud-config.js.map +1 -0
- package/dist/modules/cloud/index.d.ts +3 -0
- package/dist/modules/cloud/index.d.ts.map +1 -0
- package/dist/modules/cloud/index.js +62 -0
- package/dist/modules/cloud/index.js.map +1 -0
- package/dist/modules/cloud/services/cloud-api.service.d.ts +17 -0
- package/dist/modules/cloud/services/cloud-api.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/cloud-api.service.js +61 -0
- package/dist/modules/cloud/services/cloud-api.service.js.map +1 -0
- package/dist/modules/cloud/services/cloud-aws.service.d.ts +23 -0
- package/dist/modules/cloud/services/cloud-aws.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/cloud-aws.service.js +26 -0
- package/dist/modules/cloud/services/cloud-aws.service.js.map +1 -0
- package/dist/modules/cloud/services/cloud-ghcr.service.d.ts +12 -0
- package/dist/modules/cloud/services/cloud-ghcr.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/cloud-ghcr.service.js +31 -0
- package/dist/modules/cloud/services/cloud-ghcr.service.js.map +1 -0
- package/dist/modules/cloud/services/cloud-jenkins.service.d.ts +29 -0
- package/dist/modules/cloud/services/cloud-jenkins.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/cloud-jenkins.service.js +236 -0
- package/dist/modules/cloud/services/cloud-jenkins.service.js.map +1 -0
- package/dist/modules/cloud/services/cloud-npm.service.d.ts +3 -0
- package/dist/modules/cloud/services/cloud-npm.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/cloud-npm.service.js +13 -0
- package/dist/modules/cloud/services/cloud-npm.service.js.map +1 -0
- package/dist/modules/cloud/services/environment.service.d.ts +25 -0
- package/dist/modules/cloud/services/environment.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/environment.service.js +21 -0
- package/dist/modules/cloud/services/environment.service.js.map +1 -0
- package/dist/modules/cloud/services/managed-aws-credential.service.d.ts +36 -0
- package/dist/modules/cloud/services/managed-aws-credential.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/managed-aws-credential.service.js +35 -0
- package/dist/modules/cloud/services/managed-aws-credential.service.js.map +1 -0
- package/dist/modules/cloud/services/project-cloud.service.d.ts +28 -0
- package/dist/modules/cloud/services/project-cloud.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/project-cloud.service.js +50 -0
- package/dist/modules/cloud/services/project-cloud.service.js.map +1 -0
- package/dist/modules/cloud/services/user-provider.service.d.ts +17 -0
- package/dist/modules/cloud/services/user-provider.service.d.ts.map +1 -0
- package/dist/modules/cloud/services/user-provider.service.js +25 -0
- package/dist/modules/cloud/services/user-provider.service.js.map +1 -0
- package/dist/modules/configure/configure.command.d.ts.map +1 -1
- package/dist/modules/configure/configure.command.js +17 -94
- package/dist/modules/configure/configure.command.js.map +1 -1
- package/dist/modules/deploy/commands/build.command.d.ts +1 -2
- package/dist/modules/deploy/commands/build.command.d.ts.map +1 -1
- package/dist/modules/deploy/commands/build.command.js +82 -124
- package/dist/modules/deploy/commands/build.command.js.map +1 -1
- package/dist/modules/deploy/index.d.ts.map +1 -1
- package/dist/modules/deploy/index.js +10 -30
- package/dist/modules/deploy/index.js.map +1 -1
- package/dist/modules/deploy/services/docker.service.d.ts +6 -3
- package/dist/modules/deploy/services/docker.service.d.ts.map +1 -1
- package/dist/modules/deploy/services/docker.service.js +8 -11
- package/dist/modules/deploy/services/docker.service.js.map +1 -1
- package/dist/modules/dockerfile/commands/create-dockerfile.command.d.ts +13 -0
- package/dist/modules/dockerfile/commands/create-dockerfile.command.d.ts.map +1 -0
- package/dist/modules/dockerfile/commands/create-dockerfile.command.js +39 -0
- package/dist/modules/dockerfile/commands/create-dockerfile.command.js.map +1 -0
- package/dist/modules/dockerfile/index.d.ts +3 -0
- package/dist/modules/dockerfile/index.d.ts.map +1 -0
- package/dist/modules/dockerfile/index.js +7 -0
- package/dist/modules/dockerfile/index.js.map +1 -0
- package/dist/modules/jenkins/commands/admin.command.d.ts +22 -0
- package/dist/modules/jenkins/commands/admin.command.d.ts.map +1 -0
- package/dist/modules/jenkins/commands/admin.command.js +128 -0
- package/dist/modules/jenkins/commands/admin.command.js.map +1 -0
- package/dist/modules/jenkins/commands/create-deployment.command.d.ts +13 -0
- package/dist/modules/jenkins/commands/create-deployment.command.d.ts.map +1 -0
- package/dist/modules/jenkins/commands/create-deployment.command.js +115 -0
- package/dist/modules/jenkins/commands/create-deployment.command.js.map +1 -0
- package/dist/modules/jenkins/index.d.ts +3 -0
- package/dist/modules/jenkins/index.d.ts.map +1 -0
- package/dist/modules/jenkins/index.js +28 -0
- package/dist/modules/jenkins/index.js.map +1 -0
- package/dist/modules/mobile/commands/build-mobile.command.d.ts.map +1 -1
- package/dist/modules/mobile/commands/build-mobile.command.js +4 -22
- package/dist/modules/mobile/commands/build-mobile.command.js.map +1 -1
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts +1 -1
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts.map +1 -1
- package/dist/modules/mobile/commands/configure-mobile.command.js +11 -9
- package/dist/modules/mobile/commands/configure-mobile.command.js.map +1 -1
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts +2 -2
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts.map +1 -1
- package/dist/modules/mobile/services/jenkins-mobile.service.js +1 -2
- package/dist/modules/mobile/services/jenkins-mobile.service.js.map +1 -1
- package/dist/modules/mobile/services/project.service.d.ts +2 -2
- package/dist/modules/mobile/services/project.service.d.ts.map +1 -1
- package/dist/modules/prebuild/commands/prebuild.command.d.ts +13 -0
- package/dist/modules/prebuild/commands/prebuild.command.d.ts.map +1 -0
- package/dist/modules/prebuild/commands/prebuild.command.js +507 -0
- package/dist/modules/prebuild/commands/prebuild.command.js.map +1 -0
- package/dist/modules/prebuild/index.d.ts +3 -0
- package/dist/modules/prebuild/index.d.ts.map +1 -0
- package/dist/modules/prebuild/index.js +19 -0
- package/dist/modules/prebuild/index.js.map +1 -0
- package/dist/modules/proxy/commands/configure-proxy.command.d.ts +2 -0
- package/dist/modules/proxy/commands/configure-proxy.command.d.ts.map +1 -0
- package/dist/modules/proxy/commands/configure-proxy.command.js +7 -0
- package/dist/modules/proxy/commands/configure-proxy.command.js.map +1 -0
- package/dist/modules/proxy/commands/npm-user.command.d.ts +28 -0
- package/dist/modules/proxy/commands/npm-user.command.d.ts.map +1 -0
- package/dist/modules/proxy/commands/npm-user.command.js +77 -0
- package/dist/modules/proxy/commands/npm-user.command.js.map +1 -0
- package/dist/modules/proxy/commands/proxy.command.d.ts +22 -0
- package/dist/modules/proxy/commands/proxy.command.d.ts.map +1 -0
- package/dist/modules/proxy/commands/proxy.command.js +173 -0
- package/dist/modules/proxy/commands/proxy.command.js.map +1 -0
- package/dist/modules/proxy/config/npm-config.d.ts +17 -0
- package/dist/modules/proxy/config/npm-config.d.ts.map +1 -0
- package/dist/modules/proxy/config/npm-config.js +50 -0
- package/dist/modules/proxy/config/npm-config.js.map +1 -0
- package/dist/modules/proxy/index.d.ts +3 -0
- package/dist/modules/proxy/index.d.ts.map +1 -0
- package/dist/modules/proxy/index.js +21 -0
- package/dist/modules/proxy/index.js.map +1 -0
- package/dist/modules/proxy/services/npm-api.service.d.ts +76 -0
- package/dist/modules/proxy/services/npm-api.service.d.ts.map +1 -0
- package/dist/modules/proxy/services/npm-api.service.js +82 -0
- package/dist/modules/proxy/services/npm-api.service.js.map +1 -0
- package/dist/modules/scaffold/commands/init.command.d.ts +6 -0
- package/dist/modules/scaffold/commands/init.command.d.ts.map +1 -0
- package/dist/modules/scaffold/commands/init.command.js +193 -0
- package/dist/modules/scaffold/commands/init.command.js.map +1 -0
- package/dist/modules/scaffold/config/project-metadata.d.ts +9 -0
- package/dist/modules/scaffold/config/project-metadata.d.ts.map +1 -0
- package/dist/modules/scaffold/config/project-metadata.js +75 -0
- package/dist/modules/scaffold/config/project-metadata.js.map +1 -0
- package/dist/modules/scaffold/index.d.ts +3 -0
- package/dist/modules/scaffold/index.d.ts.map +1 -0
- package/dist/modules/scaffold/index.js +7 -0
- package/dist/modules/scaffold/index.js.map +1 -0
- package/dist/modules/scaffold/services/docker-template.service.d.ts +3 -0
- package/dist/modules/scaffold/services/docker-template.service.d.ts.map +1 -0
- package/dist/modules/scaffold/services/docker-template.service.js +131 -0
- package/dist/modules/scaffold/services/docker-template.service.js.map +1 -0
- package/dist/modules/scaffold/services/filesystem.service.d.ts +7 -0
- package/dist/modules/scaffold/services/filesystem.service.d.ts.map +1 -0
- package/dist/modules/scaffold/services/filesystem.service.js +97 -0
- package/dist/modules/scaffold/services/filesystem.service.js.map +1 -0
- package/dist/modules/scaffold/services/project-template.service.d.ts +4 -0
- package/dist/modules/scaffold/services/project-template.service.d.ts.map +1 -0
- package/dist/modules/scaffold/services/project-template.service.js +82 -0
- package/dist/modules/scaffold/services/project-template.service.js.map +1 -0
- package/dist/modules/scaffold/types.d.ts +65 -0
- package/dist/modules/scaffold/types.d.ts.map +1 -0
- package/dist/modules/scaffold/types.js +3 -0
- package/dist/modules/scaffold/types.js.map +1 -0
- package/dist/modules/users/commands/user.command.d.ts +22 -0
- package/dist/modules/users/commands/user.command.d.ts.map +1 -0
- package/dist/modules/users/commands/user.command.js +350 -0
- package/dist/modules/users/commands/user.command.js.map +1 -0
- package/dist/modules/users/index.d.ts +3 -0
- package/dist/modules/users/index.d.ts.map +1 -0
- package/dist/modules/users/index.js +34 -0
- package/dist/modules/users/index.js.map +1 -0
- package/dist/modules/users/providers/aws-user.provider.d.ts +11 -0
- package/dist/modules/users/providers/aws-user.provider.d.ts.map +1 -0
- package/dist/modules/users/providers/aws-user.provider.js +129 -0
- package/dist/modules/users/providers/aws-user.provider.js.map +1 -0
- package/dist/modules/users/providers/jenkins-user.provider.d.ts +6 -0
- package/dist/modules/users/providers/jenkins-user.provider.d.ts.map +1 -0
- package/dist/modules/users/providers/jenkins-user.provider.js +97 -0
- package/dist/modules/users/providers/jenkins-user.provider.js.map +1 -0
- package/dist/modules/users/providers/npm-user.provider.d.ts +4 -0
- package/dist/modules/users/providers/npm-user.provider.d.ts.map +1 -0
- package/dist/modules/users/providers/npm-user.provider.js +47 -0
- package/dist/modules/users/providers/npm-user.provider.js.map +1 -0
- package/dist/shared/config/config-files.d.ts.map +1 -1
- package/dist/shared/config/config-files.js +14 -10
- package/dist/shared/config/config-files.js.map +1 -1
- package/dist/shared/github/github-api.service.d.ts.map +1 -1
- package/dist/shared/github/github-api.service.js +25 -37
- package/dist/shared/github/github-api.service.js.map +1 -1
- package/dist/shared/jenkins/jenkins.service.d.ts +2 -0
- package/dist/shared/jenkins/jenkins.service.d.ts.map +1 -1
- package/dist/shared/jenkins/jenkins.service.js +30 -1
- package/dist/shared/jenkins/jenkins.service.js.map +1 -1
- package/dist/shared/listing.d.ts +9 -0
- package/dist/shared/listing.d.ts.map +1 -0
- package/dist/shared/listing.js +29 -0
- package/dist/shared/listing.js.map +1 -0
- package/docs/ARCHITECTURE.md +29 -0
- package/docs/CREATE-DEPLOYMENT-reference.groovy +1105 -0
- package/package.json +76 -59
- package/templates/jenkins/CREATE-DEPLOYMENT.groovy +1105 -0
- package/templates/jenkins/Jenkinsfile-Mobile-App +759 -759
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preflightJenkinsUserManagement = exports.deleteJenkinsUser = exports.updateJenkinsUser = exports.createJenkinsUser = exports.buildJenkinsUserScript = void 0;
|
|
4
|
+
const cloud_jenkins_service_1 = require("../../cloud/services/cloud-jenkins.service");
|
|
5
|
+
const user_provider_service_1 = require("../../cloud/services/user-provider.service");
|
|
6
|
+
const literal = (value) => JSON.stringify(value);
|
|
7
|
+
const hash = (value) => Math.abs([...value].reduce((total, char) => ((total * 31) + char.charCodeAt(0)) | 0, 0));
|
|
8
|
+
const imports = `import hudson.security.HudsonPrivateSecurityRealm
|
|
9
|
+
import com.michelin.cio.hudson.plugins.rolestrategy.AuthorizationType
|
|
10
|
+
import com.michelin.cio.hudson.plugins.rolestrategy.PermissionEntry
|
|
11
|
+
import com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy
|
|
12
|
+
import com.michelin.cio.hudson.plugins.rolestrategy.Role
|
|
13
|
+
import com.synopsys.arc.jenkins.plugins.rolestrategy.RoleType
|
|
14
|
+
import hudson.model.Item
|
|
15
|
+
import hudson.security.Permission
|
|
16
|
+
import jenkins.model.Jenkins`;
|
|
17
|
+
const seedRole = (username) => `
|
|
18
|
+
def strategy = Jenkins.get().authorizationStrategy
|
|
19
|
+
if (!(strategy instanceof RoleBasedAuthorizationStrategy)) throw new IllegalStateException('Role Strategy plugin must be the active Jenkins authorization strategy')
|
|
20
|
+
def itemMap = strategy.getRoleMap(RoleType.Project)
|
|
21
|
+
def seedRole = itemMap.getRole('indraq-create-deployment')
|
|
22
|
+
if (seedRole == null) {
|
|
23
|
+
Set<Permission> seedPermissions = new HashSet<Permission>()
|
|
24
|
+
seedPermissions.add(Item.DISCOVER)
|
|
25
|
+
seedPermissions.add(Item.READ)
|
|
26
|
+
seedPermissions.add(Item.BUILD)
|
|
27
|
+
seedPermissions.add(Item.CANCEL)
|
|
28
|
+
seedRole = new Role('indraq-create-deployment', '^CREATE-DEPLOYMENT$', seedPermissions)
|
|
29
|
+
itemMap.addRole(seedRole)
|
|
30
|
+
}
|
|
31
|
+
itemMap.assignRole(seedRole, new PermissionEntry(AuthorizationType.USER, ${literal(username)}))
|
|
32
|
+
Jenkins.get().save()`;
|
|
33
|
+
const globalRoleBody = (username, roles) => roles.length ? `${roles.map((role) => `def role_${hash(role)} = strategy.getRoleMap(RoleType.Global).getRole(${literal(role)})
|
|
34
|
+
if (role_${hash(role)} == null) throw new IllegalArgumentException('Unknown Jenkins global role: ' + ${literal(role)})
|
|
35
|
+
strategy.getRoleMap(RoleType.Global).assignRole(role_${hash(role)}, new PermissionEntry(AuthorizationType.USER, ${literal(username)}))`).join('\n')}
|
|
36
|
+
Jenkins.get().save()` : '';
|
|
37
|
+
const buildJenkinsUserScript = (operation, username, password, roles = []) => {
|
|
38
|
+
if (operation === 'delete')
|
|
39
|
+
return `${imports}
|
|
40
|
+
def user = hudson.model.User.getById(${literal(username)}, false)
|
|
41
|
+
if (user == null) throw new IllegalStateException('Jenkins user not found')
|
|
42
|
+
def strategy = Jenkins.get().authorizationStrategy
|
|
43
|
+
if (strategy instanceof RoleBasedAuthorizationStrategy) {
|
|
44
|
+
def itemMap = strategy.getRoleMap(RoleType.Project)
|
|
45
|
+
def seed = itemMap.getRole('indraq-create-deployment')
|
|
46
|
+
if (seed != null) itemMap.unAssignRole(seed, new PermissionEntry(AuthorizationType.USER, ${literal(username)}))
|
|
47
|
+
Jenkins.get().save()
|
|
48
|
+
}
|
|
49
|
+
user.delete()
|
|
50
|
+
println 'deleted'`;
|
|
51
|
+
const roleSetup = roles.length ? `def strategy = Jenkins.get().authorizationStrategy
|
|
52
|
+
if (!(strategy instanceof RoleBasedAuthorizationStrategy)) throw new IllegalStateException('Role Strategy plugin is required for Jenkins role assignment')
|
|
53
|
+
${globalRoleBody(username, roles)}` : '';
|
|
54
|
+
if (operation === 'create')
|
|
55
|
+
return `${imports}
|
|
56
|
+
def realm = Jenkins.get().securityRealm
|
|
57
|
+
if (!(realm instanceof HudsonPrivateSecurityRealm)) throw new IllegalStateException('Jenkins must use its private security realm to create users')
|
|
58
|
+
if (hudson.model.User.getById(${literal(username)}, false) != null) throw new IllegalStateException('Jenkins user already exists')
|
|
59
|
+
realm.createAccount(${literal(username)}, ${literal(password || '')})
|
|
60
|
+
${seedRole(username)}
|
|
61
|
+
${roleSetup}
|
|
62
|
+
println 'created'`;
|
|
63
|
+
return `${imports}
|
|
64
|
+
def user = hudson.model.User.getById(${literal(username)}, false)
|
|
65
|
+
if (user == null) throw new IllegalStateException('Jenkins user not found')
|
|
66
|
+
${password ? `user.addProperty(HudsonPrivateSecurityRealm.Details.fromPlainPassword(${literal(password)})); user.save()` : ''}
|
|
67
|
+
${seedRole(username)}
|
|
68
|
+
${roleSetup}
|
|
69
|
+
println 'updated'`;
|
|
70
|
+
};
|
|
71
|
+
exports.buildJenkinsUserScript = buildJenkinsUserScript;
|
|
72
|
+
const connection = async () => {
|
|
73
|
+
const providers = await (0, user_provider_service_1.listUserProviders)();
|
|
74
|
+
const environment = providers.some((p) => p.provider === 'jenkins-prod' && p.has_secret) ? 'prod' : 'dev';
|
|
75
|
+
return (0, cloud_jenkins_service_1.getCloudJenkins)(environment, 'Manage Jenkins user from unified CLI');
|
|
76
|
+
};
|
|
77
|
+
const createJenkinsUser = async (username, password, roles) => { await (0, cloud_jenkins_service_1.runCloudJenkinsGroovy)(await connection(), (0, exports.buildJenkinsUserScript)('create', username, password, roles)); };
|
|
78
|
+
exports.createJenkinsUser = createJenkinsUser;
|
|
79
|
+
const updateJenkinsUser = async (username, password, roles) => { await (0, cloud_jenkins_service_1.runCloudJenkinsGroovy)(await connection(), (0, exports.buildJenkinsUserScript)('update', username, password, roles)); };
|
|
80
|
+
exports.updateJenkinsUser = updateJenkinsUser;
|
|
81
|
+
const deleteJenkinsUser = async (username) => { await (0, cloud_jenkins_service_1.runCloudJenkinsGroovy)(await connection(), (0, exports.buildJenkinsUserScript)('delete', username)); };
|
|
82
|
+
exports.deleteJenkinsUser = deleteJenkinsUser;
|
|
83
|
+
const preflightJenkinsUserManagement = async (roles = []) => {
|
|
84
|
+
const roleCheck = roles.length ? `${roles.map((role) => `if (strategy.getRoleMap(RoleType.Global).getRole(${literal(role)}) == null) throw new IllegalArgumentException('Unknown Jenkins global role: ' + ${literal(role)})`).join('\n')}` : '';
|
|
85
|
+
const script = `${imports}
|
|
86
|
+
def realm = Jenkins.get().securityRealm
|
|
87
|
+
if (!(realm instanceof HudsonPrivateSecurityRealm)) throw new IllegalStateException('Jenkins must use its private security realm to create users')
|
|
88
|
+
def strategy = Jenkins.get().authorizationStrategy
|
|
89
|
+
if (!(strategy instanceof RoleBasedAuthorizationStrategy)) throw new IllegalStateException('Role Strategy plugin must be the active Jenkins authorization strategy')
|
|
90
|
+
${roleCheck}
|
|
91
|
+
println 'indraq-user-management-ready'`;
|
|
92
|
+
const output = await (0, cloud_jenkins_service_1.runCloudJenkinsGroovy)(await connection(), script);
|
|
93
|
+
if (!output.includes('indraq-user-management-ready'))
|
|
94
|
+
throw new Error('Jenkins Groovy administration preflight did not return the expected response.');
|
|
95
|
+
};
|
|
96
|
+
exports.preflightJenkinsUserManagement = preflightJenkinsUserManagement;
|
|
97
|
+
//# sourceMappingURL=jenkins-user.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jenkins-user.provider.js","sourceRoot":"","sources":["../../../../src/modules/users/providers/jenkins-user.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const createNpmUnifiedUser: (username: string, email: string, password: string, role: string) => Promise<void>;
|
|
2
|
+
export declare const updateNpmUnifiedUser: (identity: string, email: string | undefined, password: string | undefined, role: string | undefined) => Promise<void>;
|
|
3
|
+
export declare const deleteNpmUnifiedUser: (identity: string) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=npm-user.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-user.provider.d.ts","sourceRoot":"","sources":["../../../../src/modules/users/providers/npm-user.provider.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,oBAAoB,GAAU,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAIxH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,UAAU,MAAM,EAAE,OAAO,MAAM,GAAG,SAAS,EAAE,UAAU,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CAO5J,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAIzE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteNpmUnifiedUser = exports.updateNpmUnifiedUser = exports.createNpmUnifiedUser = void 0;
|
|
4
|
+
const cloud_npm_service_1 = require("../../cloud/services/cloud-npm.service");
|
|
5
|
+
const lookup = async (api, identity) => {
|
|
6
|
+
const user = (await api.listUsers()).find((u) => u.email.toLowerCase() === identity.toLowerCase() || u.nickname.toLowerCase() === identity.toLowerCase());
|
|
7
|
+
if (!user)
|
|
8
|
+
throw new Error('NPM user not found.');
|
|
9
|
+
return user;
|
|
10
|
+
};
|
|
11
|
+
// visibility=user is NPM's native "created items only" model. A normal IndraQ
|
|
12
|
+
// user can create/manage their own proxy hosts and certificates without seeing
|
|
13
|
+
// every host owned by other NPM users.
|
|
14
|
+
const standardPermissions = {
|
|
15
|
+
visibility: 'user',
|
|
16
|
+
proxy_hosts: 'manage',
|
|
17
|
+
certificates: 'manage',
|
|
18
|
+
access_lists: 'view',
|
|
19
|
+
redirection_hosts: 'hidden',
|
|
20
|
+
dead_hosts: 'hidden',
|
|
21
|
+
streams: 'hidden'
|
|
22
|
+
};
|
|
23
|
+
const createNpmUnifiedUser = async (username, email, password, role) => {
|
|
24
|
+
const api = await (0, cloud_npm_service_1.createCloudNpmApi)('Create Nginx Proxy Manager user');
|
|
25
|
+
const created = await api.createUser({ name: username, nickname: username, email, password, roles: [role], is_disabled: false });
|
|
26
|
+
if (role !== 'admin')
|
|
27
|
+
await api.updateUserPermissions(created.id, standardPermissions);
|
|
28
|
+
};
|
|
29
|
+
exports.createNpmUnifiedUser = createNpmUnifiedUser;
|
|
30
|
+
const updateNpmUnifiedUser = async (identity, email, password, role) => {
|
|
31
|
+
const api = await (0, cloud_npm_service_1.createCloudNpmApi)('Update Nginx Proxy Manager user');
|
|
32
|
+
const user = await lookup(api, identity);
|
|
33
|
+
const effectiveRole = role || user.roles[0] || 'user';
|
|
34
|
+
await api.updateUser(user.id, { name: user.name, nickname: user.nickname, email: email || user.email, roles: [effectiveRole], is_disabled: user.is_disabled });
|
|
35
|
+
if (password)
|
|
36
|
+
await api.updateUserPassword(user.id, password);
|
|
37
|
+
if (effectiveRole !== 'admin')
|
|
38
|
+
await api.updateUserPermissions(user.id, standardPermissions);
|
|
39
|
+
};
|
|
40
|
+
exports.updateNpmUnifiedUser = updateNpmUnifiedUser;
|
|
41
|
+
const deleteNpmUnifiedUser = async (identity) => {
|
|
42
|
+
const api = await (0, cloud_npm_service_1.createCloudNpmApi)('Delete Nginx Proxy Manager user');
|
|
43
|
+
const user = await lookup(api, identity);
|
|
44
|
+
await api.deleteUser(user.id);
|
|
45
|
+
};
|
|
46
|
+
exports.deleteNpmUnifiedUser = deleteNpmUnifiedUser;
|
|
47
|
+
//# sourceMappingURL=npm-user.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-user.provider.js","sourceRoot":"","sources":["../../../../src/modules/users/providers/npm-user.provider.ts"],"names":[],"mappings":";;;AACA,8EAA2E;AAE3E,MAAM,MAAM,GAAG,KAAK,EAAE,GAAkB,EAAE,QAAgB,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1J,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,8EAA8E;AAC9E,+EAA+E;AAC/E,uCAAuC;AACvC,MAAM,mBAAmB,GAAuB;IAC9C,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,QAAQ;IAC3B,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEK,MAAM,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,KAAa,EAAE,QAAgB,EAAE,IAAY,EAAiB,EAAE;IAC3H,MAAM,GAAG,GAAG,MAAM,IAAA,qCAAiB,EAAC,iCAAiC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,KAAK,OAAO;QAAE,MAAM,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;AACzF,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,KAAyB,EAAE,QAA4B,EAAE,IAAwB,EAAiB,EAAE;IAC/J,MAAM,GAAG,GAAG,MAAM,IAAA,qCAAiB,EAAC,iCAAiC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACtD,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/J,IAAI,QAAQ;QAAE,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,aAAa,KAAK,OAAO;QAAE,MAAM,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC/F,CAAC,CAAC;AAPW,QAAA,oBAAoB,wBAO/B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAC5E,MAAM,GAAG,GAAG,MAAM,IAAA,qCAAiB,EAAC,iCAAiC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["config-files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,QAAO,MAAwC,CAAC;AAErF,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MACX,CAAC;
|
|
1
|
+
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../../src/shared/config/config-files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,QAAO,MAAwC,CAAC;AAErF,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MACX,CAAC;AA2H7C,eAAO,MAAM,2BAA2B,QAAO,MAO9C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,KAAG,OAM7D,CAAC"}
|
|
@@ -11,22 +11,24 @@ exports.getIndraqConfigPath = getIndraqConfigPath;
|
|
|
11
11
|
const INDRAQ_LOCAL_GITIGNORE_HEADER = '# IndraQ CLI machine-local files';
|
|
12
12
|
const INDRAQ_LOCAL_GITIGNORE_RULES = [
|
|
13
13
|
'jenkins.local.json',
|
|
14
|
+
'aws.local.json',
|
|
15
|
+
'npm.local.json',
|
|
14
16
|
'*.secret',
|
|
15
17
|
'auth',
|
|
16
18
|
'jenkins-cli.jar'
|
|
17
19
|
];
|
|
18
|
-
const ROOT_GITIGNORE_HEADER = '# IndraQ CLI machine-local
|
|
19
|
-
const
|
|
20
|
+
const ROOT_GITIGNORE_HEADER = '# IndraQ CLI machine-local credentials';
|
|
21
|
+
const ROOT_LOCAL_RULES = ['.indraq/jenkins.local.json', '.indraq/aws.local.json', '.indraq/npm.local.json'];
|
|
20
22
|
// This was generated by older IndraQ CLI releases. It ignored every file in
|
|
21
23
|
// .indraq/, which prevented safe project configuration from being shared.
|
|
22
24
|
const LEGACY_INNER_GITIGNORE = '*\n!.gitignore\n';
|
|
23
|
-
const LEGACY_ROOT_SHARED_BLOCK = `# IndraQ CLI shared project configuration
|
|
24
|
-
# These files are safe and intentionally shared with the project.
|
|
25
|
-
!.indraq/
|
|
26
|
-
!.indraq/.gitignore
|
|
27
|
-
!.indraq/jenkins.json
|
|
28
|
-
!.indraq/docker.json
|
|
29
|
-
!.indraq/mobile.json
|
|
25
|
+
const LEGACY_ROOT_SHARED_BLOCK = `# IndraQ CLI shared project configuration
|
|
26
|
+
# These files are safe and intentionally shared with the project.
|
|
27
|
+
!.indraq/
|
|
28
|
+
!.indraq/.gitignore
|
|
29
|
+
!.indraq/jenkins.json
|
|
30
|
+
!.indraq/docker.json
|
|
31
|
+
!.indraq/mobile.json
|
|
30
32
|
`;
|
|
31
33
|
const normaliseLines = (content) => content.replace(/\r\n/g, '\n').split('\n');
|
|
32
34
|
const hasExactRule = (lines, rule) => lines.some((line) => line.trim() === rule);
|
|
@@ -54,6 +56,8 @@ const removeKnownLegacyIndraqDirectoryRule = (content) => {
|
|
|
54
56
|
const output = [];
|
|
55
57
|
for (let index = 0; index < lines.length; index += 1) {
|
|
56
58
|
const line = lines[index];
|
|
59
|
+
if (line === undefined)
|
|
60
|
+
continue;
|
|
57
61
|
if (line.trim() !== '.indraq/') {
|
|
58
62
|
output.push(line);
|
|
59
63
|
continue;
|
|
@@ -87,7 +91,7 @@ const ensureRootGitignoreProtectsOnlyLocalJenkinsBinding = () => {
|
|
|
87
91
|
// ignore rules are preserved.
|
|
88
92
|
let next = removeLegacyRootSharedBlock(content);
|
|
89
93
|
next = removeKnownLegacyIndraqDirectoryRule(next);
|
|
90
|
-
next = appendMissingBlock(next, ROOT_GITIGNORE_HEADER,
|
|
94
|
+
next = appendMissingBlock(next, ROOT_GITIGNORE_HEADER, ROOT_LOCAL_RULES);
|
|
91
95
|
if (next === content)
|
|
92
96
|
return;
|
|
93
97
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["config-files.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAC7E,yCAAiC;AACjC,2DAA+C;AAExC,MAAM,wBAAwB,GAAG,GAAW,EAAE,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAAxE,QAAA,wBAAwB,4BAAgD;AAE9E,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAC9D,IAAA,gBAAI,EAAC,IAAA,gCAAwB,GAAE,EAAE,QAAQ,CAAC,CAAC;AADhC,QAAA,mBAAmB,uBACa;AAE7C,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AACzE,MAAM,4BAA4B,GAAG;IACnC,oBAAoB;IACpB,UAAU;IACV,MAAM;IACN,iBAAiB;CAClB,CAAC;AAEF,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../../src/shared/config/config-files.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAC7E,yCAAiC;AACjC,2DAA+C;AAExC,MAAM,wBAAwB,GAAG,GAAW,EAAE,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAAxE,QAAA,wBAAwB,4BAAgD;AAE9E,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAC9D,IAAA,gBAAI,EAAC,IAAA,gCAAwB,GAAE,EAAE,QAAQ,CAAC,CAAC;AADhC,QAAA,mBAAmB,uBACa;AAE7C,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AACzE,MAAM,4BAA4B,GAAG;IACnC,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,iBAAiB;CAClB,CAAC;AAEF,MAAM,qBAAqB,GAAG,wCAAwC,CAAC;AACvE,MAAM,gBAAgB,GAAG,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AAE5G,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,wBAAwB,GAAG;;;;;;;CAOhC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAY,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjG,MAAM,YAAY,GAAG,CAAC,KAAe,EAAE,IAAY,EAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AAE5G,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,MAAc,EAAE,KAAe,EAAU,EAAE;IACtF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACxB,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,OAAe,EAAU,EAAE;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,oCAAoC,GAAG,CAAC,OAAe,EAAU,EAAE;IACvE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,4EAA4E;QAC5E,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1G,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,SAAS;QAEnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,kDAAkD,GAAG,GAAS,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO;IAEvE,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,yEAAyE;IACzE,8BAA8B;IAC9B,IAAI,IAAI,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;IAEzE,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO;IAE7B,IAAI,CAAC;QACH,IAAA,uBAAa,EAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,uEAAuE;IACzE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAQ,EAAE;IACvD,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,oBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,sBAAsB;QAAE,OAAO,GAAG,EAAE,CAAC;IAE5E,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,CAAC,CAAC;IACtG,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO;IAE7B,IAAA,uBAAa,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAEK,MAAM,2BAA2B,GAAG,GAAW,EAAE;IACtD,MAAM,SAAS,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAC7C,IAAA,mBAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChC,kDAAkD,EAAE,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAPW,QAAA,2BAA2B,+BAOtC;AAEK,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAW,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,QAAQ,EAAE,CAAC,EAAE;QACnF,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.service.d.ts","sourceRoot":"","sources":["../../../src/shared/github/github-api.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"github-api.service.d.ts","sourceRoot":"","sources":["../../../src/shared/github/github-api.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,EAAE,eAAe,GAAG,QAAQ,GAAG,aAAa,CAAC;CACnE;AAgCD,eAAO,MAAM,iBAAiB,GAAU,MAAM,eAAe,KAAG,OAAO,CAAC,cAAc,CAsBrF,CAAC"}
|
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getGitHubIdentity = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const createGitHubApi = (token) => axios_1.default.create({
|
|
9
|
-
baseURL: 'https://api.github.com',
|
|
10
|
-
timeout: 10_000,
|
|
9
|
+
baseURL: 'https://api.github.com', timeout: 10_000,
|
|
11
10
|
headers: {
|
|
12
11
|
Accept: 'application/vnd.github+json',
|
|
13
12
|
'X-GitHub-Api-Version': '2022-11-28',
|
|
@@ -19,16 +18,21 @@ const listOrganizations = async (api, endpoint) => {
|
|
|
19
18
|
const organizations = [];
|
|
20
19
|
const perPage = 100;
|
|
21
20
|
for (let page = 1; page <= 10; page += 1) {
|
|
22
|
-
const response = await api.get(endpoint, {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
const response = await api.get(endpoint, { params: { per_page: perPage, page } });
|
|
22
|
+
organizations.push(...response.data.map((o) => o.login?.trim()).filter((v) => Boolean(v)));
|
|
23
|
+
if (response.data.length < perPage)
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
return Array.from(new Set(organizations)).sort((a, b) => a.localeCompare(b));
|
|
27
|
+
};
|
|
28
|
+
const listMembershipOrganizations = async (api) => {
|
|
29
|
+
const organizations = [];
|
|
30
|
+
const perPage = 100;
|
|
31
|
+
for (let page = 1; page <= 10; page += 1) {
|
|
32
|
+
const response = await api.get('/user/memberships/orgs', { params: { state: 'active', per_page: perPage, page } });
|
|
33
|
+
organizations.push(...response.data.map((m) => m.organization?.login?.trim()).filter((v) => Boolean(v)));
|
|
34
|
+
if (response.data.length < perPage)
|
|
30
35
|
break;
|
|
31
|
-
}
|
|
32
36
|
}
|
|
33
37
|
return Array.from(new Set(organizations)).sort((a, b) => a.localeCompare(b));
|
|
34
38
|
};
|
|
@@ -36,42 +40,26 @@ const getGitHubIdentity = async (auth) => {
|
|
|
36
40
|
if (auth.token) {
|
|
37
41
|
try {
|
|
38
42
|
const api = createGitHubApi(auth.token);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
]);
|
|
43
|
+
const userResponse = await api.get('/user');
|
|
44
|
+
const discovered = await Promise.allSettled([listOrganizations(api, '/user/orgs'), listMembershipOrganizations(api)]);
|
|
45
|
+
const organizations = Array.from(new Set(discovered.flatMap((r) => r.status === 'fulfilled' ? r.value : []))).sort((a, b) => a.localeCompare(b));
|
|
43
46
|
const username = userResponse.data.login || auth.username;
|
|
44
|
-
return {
|
|
45
|
-
...(username ? { username } : {}),
|
|
46
|
-
organizations,
|
|
47
|
-
organizationDiscovery: 'authenticated'
|
|
48
|
-
};
|
|
47
|
+
return { ...(username ? { username } : {}), organizations, organizationDiscovery: 'authenticated' };
|
|
49
48
|
}
|
|
50
49
|
catch {
|
|
51
|
-
// Fall through. Git credentials can be valid for Git
|
|
52
|
-
// the token does not have enough API scope
|
|
50
|
+
// Fall through. Git credentials can still be valid for Git/GHCR even when
|
|
51
|
+
// the token does not have enough organization API scope.
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
const username = auth.username;
|
|
56
55
|
if (username) {
|
|
57
56
|
try {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
return {
|
|
61
|
-
username,
|
|
62
|
-
organizations,
|
|
63
|
-
organizationDiscovery: 'public'
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
// Keep the authenticated Git username and let the caller provide a manual fallback.
|
|
57
|
+
const organizations = await listOrganizations(createGitHubApi(), `/users/${encodeURIComponent(username)}/orgs`);
|
|
58
|
+
return { username, organizations, organizationDiscovery: 'public' };
|
|
68
59
|
}
|
|
60
|
+
catch { /* manual owner fallback remains available */ }
|
|
69
61
|
}
|
|
70
|
-
return {
|
|
71
|
-
...(username ? { username } : {}),
|
|
72
|
-
organizations: [],
|
|
73
|
-
organizationDiscovery: 'unavailable'
|
|
74
|
-
};
|
|
62
|
+
return { ...(username ? { username } : {}), organizations: [], organizationDiscovery: 'unavailable' };
|
|
75
63
|
};
|
|
76
64
|
exports.getGitHubIdentity = getGitHubIdentity;
|
|
77
65
|
//# sourceMappingURL=github-api.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.service.js","sourceRoot":"","sources":["../../../src/shared/github/github-api.service.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAkD;
|
|
1
|
+
{"version":3,"file":"github-api.service.js","sourceRoot":"","sources":["../../../src/shared/github/github-api.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,11 @@ export declare const saveJenkinsCredentials: (serverId: string, username: string
|
|
|
16
16
|
export declare const deleteJenkinsCredentials: (serverId: string) => void;
|
|
17
17
|
export declare const readJenkinsCredentials: (serverId: string) => JenkinsCredentials;
|
|
18
18
|
export declare const downloadJenkinsCli: (jenkinsUrl: string, serverId: string, username: string, secret: string) => Promise<string>;
|
|
19
|
+
export declare const runJenkinsGroovy: (config: JenkinsResolvedConfig, script: string) => string;
|
|
19
20
|
export declare const validateJenkinsAuthentication: (config: Pick<JenkinsResolvedConfig, "url" | "serverId">) => JenkinsWhoAmIResult;
|
|
20
21
|
export declare const getJenkinsJobBaseUrl: (jenkinsUrl: string, jobName: string) => string;
|
|
21
22
|
export declare const assertJenkinsJobExists: (config: JenkinsResolvedConfig, jobName: string, context?: string) => Promise<void>;
|
|
23
|
+
export declare const jenkinsJobExists: (config: JenkinsResolvedConfig, jobName: string) => Promise<boolean>;
|
|
22
24
|
export declare const triggerJenkinsDeployment: (config: JenkinsResolvedConfig, jobName: string, parameters?: Record<string, string>) => Promise<void>;
|
|
23
25
|
export {};
|
|
24
26
|
//# sourceMappingURL=jenkins.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins.service.d.ts","sourceRoot":"","sources":["../../../src/shared/jenkins/jenkins.service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,qBAAqB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,MAA2C,CAAC;AAEhG,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,MAI5D,CAAC;AAIlB,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MACF,CAAC;AAEvD,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,MACP,CAAC;AAQpD,eAAO,MAAM,mBAAmB,QAAO,IAWtC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,MAgBF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,IAG3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,kBAgBzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,CAiChB,CAAC;
|
|
1
|
+
{"version":3,"file":"jenkins.service.d.ts","sourceRoot":"","sources":["../../../src/shared/jenkins/jenkins.service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,qBAAqB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,MAA2C,CAAC;AAEhG,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,MAI5D,CAAC;AAIlB,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MACF,CAAC;AAEvD,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,MACP,CAAC;AAQpD,eAAO,MAAM,mBAAmB,QAAO,IAWtC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,MAgBF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,IAG3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,kBAgBzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,CAiChB,CAAC;AAyCF,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,qBAAqB,EAC7B,QAAQ,MAAM,KACb,MAUF,CAAC;AAYF,eAAO,MAAM,6BAA6B,GACxC,QAAQ,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,UAAU,CAAC,KACtD,mBAoBF,CAAC;AAQF,eAAO,MAAM,oBAAoB,GAAI,YAAY,MAAM,EAAE,SAAS,MAAM,KAAG,MACd,CAAC;AAE9D,eAAO,MAAM,sBAAsB,GACjC,QAAQ,qBAAqB,EAC7B,SAAS,MAAM,EACf,gBAAwB,KACvB,OAAO,CAAC,IAAI,CAqBd,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,QAAQ,qBAAqB,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAUtG,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,qBAAqB,EAC7B,SAAS,MAAM,EACf,aAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,KACtC,OAAO,CAAC,IAAI,CA+Bd,CAAC"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.triggerJenkinsDeployment = exports.assertJenkinsJobExists = exports.getJenkinsJobBaseUrl = exports.validateJenkinsAuthentication = exports.downloadJenkinsCli = exports.readJenkinsCredentials = exports.deleteJenkinsCredentials = exports.saveJenkinsCredentials = exports.assertJavaAvailable = exports.getJenkinsAuthFilePath = exports.getJenkinsCliJarPath = exports.createJenkinsServerId = exports.normalizeJenkinsUrl = void 0;
|
|
6
|
+
exports.triggerJenkinsDeployment = exports.jenkinsJobExists = exports.assertJenkinsJobExists = exports.getJenkinsJobBaseUrl = exports.validateJenkinsAuthentication = exports.runJenkinsGroovy = exports.downloadJenkinsCli = exports.readJenkinsCredentials = exports.deleteJenkinsCredentials = exports.saveJenkinsCredentials = exports.assertJavaAvailable = exports.getJenkinsAuthFilePath = exports.getJenkinsCliJarPath = exports.createJenkinsServerId = exports.normalizeJenkinsUrl = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const node_crypto_1 = require("node:crypto");
|
|
9
9
|
const node_fs_1 = require("node:fs");
|
|
@@ -137,6 +137,20 @@ const runJenkinsCliCapture = (config, connectionMode, commandArguments) => {
|
|
|
137
137
|
...(result.error ? { error: result.error } : {})
|
|
138
138
|
};
|
|
139
139
|
};
|
|
140
|
+
const runJenkinsGroovy = (config, script) => {
|
|
141
|
+
(0, exports.assertJavaAvailable)();
|
|
142
|
+
const jarPath = (0, exports.getJenkinsCliJarPath)(config.serverId);
|
|
143
|
+
const authPath = (0, exports.getJenkinsAuthFilePath)(config.serverId);
|
|
144
|
+
if (!(0, node_fs_1.existsSync)(jarPath) || !(0, node_fs_1.existsSync)(authPath))
|
|
145
|
+
throw new Error('Jenkins CLI or credentials are missing. Run `indraq configure`.');
|
|
146
|
+
const result = (0, node_child_process_1.spawnSync)('java', ['-jar', jarPath, '-s', (0, exports.normalizeJenkinsUrl)(config.url), `-${config.connectionMode}`, '-auth', `@${authPath}`, 'groovy', '='], {
|
|
147
|
+
input: script, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'], maxBuffer: 20 * 1024 * 1024
|
|
148
|
+
});
|
|
149
|
+
if (result.error || result.status !== 0)
|
|
150
|
+
throw new Error(`Jenkins administration failed: ${result.error?.message || cleanCliError(result.stdout || '', result.stderr || '')}`);
|
|
151
|
+
return (result.stdout || '').trim();
|
|
152
|
+
};
|
|
153
|
+
exports.runJenkinsGroovy = runJenkinsGroovy;
|
|
140
154
|
const cleanCliError = (stdout, stderr) => {
|
|
141
155
|
const combined = `${stderr}\n${stdout}`
|
|
142
156
|
.split(/\r?\n/)
|
|
@@ -195,6 +209,21 @@ const assertJenkinsJobExists = async (config, jobName, context = 'pipeline/job')
|
|
|
195
209
|
}
|
|
196
210
|
};
|
|
197
211
|
exports.assertJenkinsJobExists = assertJenkinsJobExists;
|
|
212
|
+
const jenkinsJobExists = async (config, jobName) => {
|
|
213
|
+
const credentials = (0, exports.readJenkinsCredentials)(config.serverId);
|
|
214
|
+
try {
|
|
215
|
+
await axios_1.default.get(`${(0, exports.getJenkinsJobBaseUrl)(config.url, jobName)}/api/json`, { timeout: 15_000, auth: { username: credentials.username, password: credentials.secret } });
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
if (axios_1.default.isAxiosError(error) && error.response?.status === 404)
|
|
220
|
+
return false;
|
|
221
|
+
if (axios_1.default.isAxiosError(error) && error.response?.status === 403)
|
|
222
|
+
throw new Error(`Jenkins denied job lookup for "${jobName}".`);
|
|
223
|
+
throw new Error(`Unable to check Jenkins job "${jobName}": ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
exports.jenkinsJobExists = jenkinsJobExists;
|
|
198
227
|
const triggerJenkinsDeployment = async (config, jobName, parameters = {}) => {
|
|
199
228
|
(0, exports.assertJavaAvailable)();
|
|
200
229
|
const jarPath = (0, exports.getJenkinsCliJarPath)(config.serverId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins.service.js","sourceRoot":"","sources":["../../../src/shared/jenkins/jenkins.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jenkins.service.js","sourceRoot":"","sources":["../../../src/shared/jenkins/jenkins.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ListCliOptions {
|
|
2
|
+
search?: string;
|
|
3
|
+
limit?: string;
|
|
4
|
+
all?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const normalizedLimit: (options: ListCliOptions, fallback?: number) => number;
|
|
7
|
+
export declare const filterAndLimit: <T>(items: T[], options: ListCliOptions, haystack: (item: T) => string) => T[];
|
|
8
|
+
export declare const queryString: (options: ListCliOptions) => string;
|
|
9
|
+
//# sourceMappingURL=listing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../../src/shared/listing.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,cAAc,EAAE,iBAAa,KAAG,MAIxE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,KAAG,CAAC,EAIvG,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,cAAc,KAAG,MAOrD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.queryString = exports.filterAndLimit = exports.normalizedLimit = void 0;
|
|
4
|
+
const normalizedLimit = (options, fallback = 10) => {
|
|
5
|
+
if (options.all)
|
|
6
|
+
return Number.MAX_SAFE_INTEGER;
|
|
7
|
+
const value = Number(options.limit || fallback);
|
|
8
|
+
return Number.isInteger(value) && value > 0 ? value : fallback;
|
|
9
|
+
};
|
|
10
|
+
exports.normalizedLimit = normalizedLimit;
|
|
11
|
+
const filterAndLimit = (items, options, haystack) => {
|
|
12
|
+
const query = (options.search || '').trim().toLowerCase();
|
|
13
|
+
const filtered = query ? items.filter((item) => haystack(item).toLowerCase().includes(query)) : items;
|
|
14
|
+
return options.all ? filtered : filtered.slice(0, (0, exports.normalizedLimit)(options));
|
|
15
|
+
};
|
|
16
|
+
exports.filterAndLimit = filterAndLimit;
|
|
17
|
+
const queryString = (options) => {
|
|
18
|
+
const params = new URLSearchParams();
|
|
19
|
+
if (options.search?.trim())
|
|
20
|
+
params.set('search', options.search.trim());
|
|
21
|
+
if (options.all)
|
|
22
|
+
params.set('all', 'true');
|
|
23
|
+
else
|
|
24
|
+
params.set('limit', String((0, exports.normalizedLimit)(options)));
|
|
25
|
+
const value = params.toString();
|
|
26
|
+
return value ? `?${value}` : '';
|
|
27
|
+
};
|
|
28
|
+
exports.queryString = queryString;
|
|
29
|
+
//# sourceMappingURL=listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.js","sourceRoot":"","sources":["../../src/shared/listing.ts"],"names":[],"mappings":";;;AAMO,MAAM,eAAe,GAAG,CAAC,OAAuB,EAAE,QAAQ,GAAG,EAAE,EAAU,EAAE;IAChF,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,cAAc,GAAG,CAAI,KAAU,EAAE,OAAuB,EAAE,QAA6B,EAAO,EAAE;IAC3G,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtG,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEK,MAAM,WAAW,GAAG,CAAC,OAAuB,EAAU,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;QACtC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# IndraQ Architecture
|
|
2
|
+
|
|
3
|
+
## Control plane
|
|
4
|
+
|
|
5
|
+
IndraQ CLI communicates with IndraQ Cloud API. PostgreSQL stores identities, roles, projects, shared environments, encrypted user provider credentials, infrastructure associations, managed AWS IAM credentials, and audit logs.
|
|
6
|
+
|
|
7
|
+
## Credential ownership
|
|
8
|
+
|
|
9
|
+
AWS, NPM, Jenkins, and GHCR credentials belong to an individual IndraQ user and are reusable across that user's projects.
|
|
10
|
+
|
|
11
|
+
They are not organization-wide global secrets and are not copied into each project folder.
|
|
12
|
+
|
|
13
|
+
## Shared environments
|
|
14
|
+
|
|
15
|
+
Admins can create any number of shared environments with arbitrary names. An environment is a reusable named target containing an IP and optional region. Health-check protocol, endpoint, port, path, interval, threshold, latency measurement, and SNI are Route53-resource settings selected when DNS is configured.
|
|
16
|
+
|
|
17
|
+
PRIMARY/SECONDARY is not an environment property. A FAILOVER DNS resource chooses which environment is PRIMARY and which is SECONDARY for that particular Route53 record.
|
|
18
|
+
|
|
19
|
+
## Project resources
|
|
20
|
+
|
|
21
|
+
Projects keep intent and external-resource associations, including GHCR image repositories, Jenkins jobs, Route53 routing/health checks, and NPM proxy hosts. Project membership controls who can discover/re-link a project. Resource grants record access to individual AWS, NPM, and Jenkins resources and are audited.
|
|
22
|
+
|
|
23
|
+
## Prebuild
|
|
24
|
+
|
|
25
|
+
Prebuild reconciles rather than blindly creates. It validates user provider configuration, checks existing project associations, asks for the Route53 routing policy first (SIMPLE, FAILOVER, WEIGHTED, or LATENCY), validates Jenkins host ports, configures/repairs Route53 according to that policy, verifies DNS before NPM, and creates/repairs NPM proxy hosts. SIMPLE records never receive a health check; FAILOVER uses PRIMARY/SECONDARY health checks; WEIGHTED/LATENCY may use health checks when requested.
|
|
26
|
+
|
|
27
|
+
## Local state
|
|
28
|
+
|
|
29
|
+
The project folder stores the Cloud project ID in `.indraq/project.json`. Reusable provider secrets are resolved from the authenticated user's Cloud account only when required.
|