@docupace/pipeline 1.0.47 → 1.0.49
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/package.json +1 -1
- package/src/auth0/configure.js +1 -1
- package/src/auth0/metadata.js +10 -9
- package/src/next/apache.js +6 -1
- package/src/next/cli.js +1 -1
- package/src/next/config.js +8 -43
- package/src/next/connect.js +68 -30
- package/src/next/haproxy.js +5 -1
package/package.json
CHANGED
package/src/auth0/configure.js
CHANGED
|
@@ -146,7 +146,7 @@ uiMain:
|
|
|
146
146
|
: ''
|
|
147
147
|
}
|
|
148
148
|
image:
|
|
149
|
-
repository: registry.paperout.com/docupace-ui-main-${env}-docker-local/
|
|
149
|
+
repository: registry.paperout.com/docupace-ui-main-${env}-docker-local/enterprise-ui-app
|
|
150
150
|
tag: ${imageTag}
|
|
151
151
|
${
|
|
152
152
|
useS3 === true || useS3 === 'true'
|
package/src/auth0/metadata.js
CHANGED
|
@@ -10,14 +10,15 @@ export async function getAuth0Metadata(site, env) {
|
|
|
10
10
|
try {
|
|
11
11
|
const connectDeployRepoPath = await cloneRepository('connect-deploy');
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
13
|
+
// mapping of env to env
|
|
14
|
+
const envMap = {
|
|
15
|
+
dev: 'dev',
|
|
16
|
+
preprod: 'qa',
|
|
17
|
+
stage: 'stage',
|
|
18
|
+
uat: 'uat',
|
|
19
|
+
'prod-www3': 'prod',
|
|
20
|
+
};
|
|
21
|
+
process.chdir(`${connectDeployRepoPath}/envs/${env}/${site}`);
|
|
21
22
|
|
|
22
23
|
const configPath = path.join('conf', 'application.conf');
|
|
23
24
|
const appConf = await fs.readFile(configPath, 'utf-8');
|
|
@@ -47,7 +48,7 @@ export async function getAuth0Metadata(site, env) {
|
|
|
47
48
|
getVaultSecretsConfigs(site).siteCommonSecretsPath;
|
|
48
49
|
console.log(`siteCommonSecretsPath => ${siteCommonSecretsPath}`);
|
|
49
50
|
const siteCommonSecrets = await getVaultSecrets(siteCommonSecretsPath);
|
|
50
|
-
const auth0Domain = `docupace-${env}-${site}.us.auth0.com`;
|
|
51
|
+
const auth0Domain = `docupace-${envMap[env]}-${site}.us.auth0.com`;
|
|
51
52
|
const auth0ClientId = siteCommonSecrets.AUTH0_CLIENT_ID;
|
|
52
53
|
const auth0ClientSecret = siteCommonSecrets.AUTH0_CLIENT_SECRET;
|
|
53
54
|
const auth0Token = await getAuth0AuthToken(
|
package/src/next/apache.js
CHANGED
|
@@ -8,7 +8,7 @@ function log(msg) {
|
|
|
8
8
|
export async function addApacheSite() {
|
|
9
9
|
if (
|
|
10
10
|
!process.env.ENVIRONMENT ||
|
|
11
|
-
!['dev', 'qa', 'uat', 'stage'].includes(process.env.ENVIRONMENT)
|
|
11
|
+
!['dev', 'qa', 'uat', 'stage','www3'].includes(process.env.ENVIRONMENT)
|
|
12
12
|
) {
|
|
13
13
|
log('Error: wront ENVIRONMENT');
|
|
14
14
|
process.exit(1);
|
|
@@ -39,6 +39,11 @@ export async function addApacheSite() {
|
|
|
39
39
|
host2: 'stg-apalb01b.edc.docupace.internal',
|
|
40
40
|
repo: 'iis-www2',
|
|
41
41
|
},
|
|
42
|
+
www3: {
|
|
43
|
+
host1: 'prd-apalb05a.edc.docupace.internal',
|
|
44
|
+
host2: 'prd-apalb05b.edc.docupace.internal',
|
|
45
|
+
repo: 'iis-www2',
|
|
46
|
+
},
|
|
42
47
|
};
|
|
43
48
|
|
|
44
49
|
// Save private key from base64
|
package/src/next/cli.js
CHANGED
|
@@ -105,7 +105,7 @@ program
|
|
|
105
105
|
});
|
|
106
106
|
|
|
107
107
|
program
|
|
108
|
-
.command('deploy-template
|
|
108
|
+
.command('deploy-template [tagPrefix]')
|
|
109
109
|
.description('Deploy an application for a specific site')
|
|
110
110
|
.action(async (tagPrefix) => {
|
|
111
111
|
const deployTag = await getDeployTag(tagPrefix);
|
package/src/next/config.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import semver from 'semver';
|
|
2
|
-
|
|
3
1
|
export const environments = ['dev', 'qa', 'uat', 'stage', 'prod'];
|
|
4
2
|
|
|
5
|
-
const UI_MONO_VERSION = '1.4.0-alpha.0';
|
|
6
|
-
|
|
7
3
|
export const environmentConfig = {
|
|
8
4
|
dev: {
|
|
9
5
|
newUrl: (site) => `https://${site}.dev.dpai.tech`,
|
|
@@ -19,20 +15,20 @@ export const environmentConfig = {
|
|
|
19
15
|
},
|
|
20
16
|
uat: {
|
|
21
17
|
newUrl: (site) => `https://${site}.uat.dpai.tech`,
|
|
22
|
-
oldUrl: (site) => `https://
|
|
23
|
-
docupaceHost: () => '
|
|
18
|
+
oldUrl: (site) => `https://uat.paperout.com/${site}`,
|
|
19
|
+
docupaceHost: () => 'uat.paperout.com',
|
|
24
20
|
ccUrl: (site) => `https://${site}-cc.uat.dpai.tech`,
|
|
25
21
|
},
|
|
26
22
|
stage: {
|
|
27
23
|
newUrl: (site) => `https://${site}.stg.dpai.tech`,
|
|
28
|
-
oldUrl: (site) => `https://
|
|
29
|
-
docupaceHost: () => '
|
|
30
|
-
ccUrl: (site) => `https://${site}-cc.
|
|
24
|
+
oldUrl: (site) => `https://stage.paperout.com/${site}`,
|
|
25
|
+
docupaceHost: () => 'stage.paperout.com',
|
|
26
|
+
ccUrl: (site) => `https://${site}-cc.stage.dpai.tech`,
|
|
31
27
|
},
|
|
32
28
|
prod: {
|
|
33
29
|
newUrl: (site) => `https://${site}.dpai.tech`,
|
|
34
|
-
oldUrl: (site) => `https://
|
|
35
|
-
docupaceHost: () => '
|
|
30
|
+
oldUrl: (site) => `https://www3.paperout.com/${site}`,
|
|
31
|
+
docupaceHost: () => 'www3.paperout.com',
|
|
36
32
|
ccUrl: (site) => `https://${site}-cc.dpai.tech`,
|
|
37
33
|
},
|
|
38
34
|
};
|
|
@@ -40,47 +36,15 @@ export const environmentConfig = {
|
|
|
40
36
|
export const appInfo = {
|
|
41
37
|
'graphql-server': {
|
|
42
38
|
repositoryName: 'docupace-graphql-server',
|
|
43
|
-
imageName: 'docupace-graphql-server',
|
|
44
39
|
deployAttributes: [
|
|
45
40
|
'image.tag',
|
|
46
41
|
'graphqlServer.siteConfigRemoteBranch',
|
|
47
42
|
'graphqlServer.standardConfigRemoteBranch',
|
|
48
43
|
],
|
|
49
44
|
},
|
|
50
|
-
cc: {
|
|
51
|
-
repositoryName: 'docupace-ui-main',
|
|
52
|
-
imageName: 'cc-ui-app',
|
|
53
|
-
deployAttributes: ['image.tag'],
|
|
54
|
-
getAppRevision: (config) => {
|
|
55
|
-
const version = config.image.tag.slice(1);
|
|
56
|
-
return 'cc-ui-app@' + version;
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
45
|
ui: {
|
|
60
46
|
repositoryName: 'docupace-ui-main',
|
|
61
|
-
imageName: 'enterprise-ui-app',
|
|
62
47
|
deployAttributes: ['image.tag'],
|
|
63
|
-
getAppRevision: (config) => {
|
|
64
|
-
const tag = config.image.tag;
|
|
65
|
-
const version = tag.startsWith('v') ? tag.slice(1) : tag;
|
|
66
|
-
if (semver.gt(version, UI_MONO_VERSION)) {
|
|
67
|
-
return 'enterprise-ui-app@' + version;
|
|
68
|
-
} else {
|
|
69
|
-
return tag;
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
updateConfigFunction: (config) => {
|
|
73
|
-
if (config.image.repository.endsWith('/docupace-ui-main')) {
|
|
74
|
-
const tag = config.image.tag;
|
|
75
|
-
const version = tag.startsWith('v') ? tag.slice(1) : tag;
|
|
76
|
-
if (semver.gt(version, UI_MONO_VERSION)) {
|
|
77
|
-
const parts = config.image.repository.split('/');
|
|
78
|
-
parts[2] = 'enterprise-ui-app';
|
|
79
|
-
config.image.repository = parts.join('/');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return config;
|
|
83
|
-
},
|
|
84
48
|
},
|
|
85
49
|
};
|
|
86
50
|
|
|
@@ -132,4 +96,5 @@ export const coreSiteEnvMap = {
|
|
|
132
96
|
stg: 'staging',
|
|
133
97
|
uat: 'uat',
|
|
134
98
|
prd: 'prod',
|
|
99
|
+
prod: 'prod',
|
|
135
100
|
};
|
package/src/next/connect.js
CHANGED
|
@@ -2,7 +2,7 @@ import 'zx/globals'; // npm i zx
|
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { $ } from 'zx';
|
|
5
|
-
|
|
5
|
+
import { getAuth0Metadata } from '../auth0/metadata.js';
|
|
6
6
|
import { getVaultSecrets } from '../auth0/vault.js';
|
|
7
7
|
|
|
8
8
|
process.env.COMMON_VAULT_PATH =
|
|
@@ -15,9 +15,42 @@ const vaultAddr = process.env.VAULT_ADDR;
|
|
|
15
15
|
const connectUIEnvMap = {
|
|
16
16
|
dev: 'dev',
|
|
17
17
|
qa: 'preprod',
|
|
18
|
-
|
|
18
|
+
stage: 'stg',
|
|
19
|
+
uat: 'uat',
|
|
20
|
+
prod: 'prod-www3',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const siteSettingsEnvMap = {
|
|
25
|
+
dev: 'dev',
|
|
26
|
+
preprod: 'preprod',
|
|
27
|
+
qa: 'preprod',
|
|
28
|
+
stage: 'staging',
|
|
29
|
+
stg: 'staging',
|
|
30
|
+
uat: 'uat',
|
|
31
|
+
prd: 'prod',
|
|
32
|
+
prod: 'prod',
|
|
33
|
+
'prod-www3': 'prod',
|
|
34
|
+
'prod-las': 'prod',
|
|
35
|
+
'prod-lax': 'prod',
|
|
36
|
+
'prod-athene': 'prod',
|
|
37
|
+
'prod-staging': 'prod',
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const idpEnvMap = {
|
|
41
|
+
dev: 'dev',
|
|
42
|
+
preprod: 'qa',
|
|
43
|
+
qa: 'qa',
|
|
44
|
+
stage: 'stage',
|
|
45
|
+
stg: 'stage',
|
|
19
46
|
uat: 'uat',
|
|
20
|
-
prd: 'prod
|
|
47
|
+
prd: 'prod',
|
|
48
|
+
prod: 'prod',
|
|
49
|
+
'prod-www3': 'prod',
|
|
50
|
+
'prod-las': 'prod',
|
|
51
|
+
'prod-lax': 'prod',
|
|
52
|
+
'prod-athene': 'prod',
|
|
53
|
+
'prod-staging': 'prod',
|
|
21
54
|
};
|
|
22
55
|
|
|
23
56
|
function log(msg) {
|
|
@@ -47,8 +80,10 @@ async function gitCheckout(repository, destDir, branch = 'master') {
|
|
|
47
80
|
}
|
|
48
81
|
|
|
49
82
|
export async function connectClone() {
|
|
50
|
-
const connectFromEnv = connectUIEnvMap[process.env.FROM_BUILD_ENVIRONMENT];
|
|
51
|
-
const
|
|
83
|
+
// const connectFromEnv = connectUIEnvMap[process.env.FROM_BUILD_ENVIRONMENT];
|
|
84
|
+
const connectFromEnv = process.env.FROM_BUILD_ENVIRONMENT;
|
|
85
|
+
const connectToEnv = process.env.BUILD_ENVIRONMENT;
|
|
86
|
+
|
|
52
87
|
if (!vaultToken || !vaultAddr) {
|
|
53
88
|
console.error('Error: VAULT_TOKEN and VAULT_ADDR must be set.');
|
|
54
89
|
throw new Error('VAULT_TOKEN and VAULT_ADDR must be set.');
|
|
@@ -81,7 +116,7 @@ export async function connectClone() {
|
|
|
81
116
|
log(`AUTH0_REGION_DOMAIN: ${process.env.AUTH0_REGION_DOMAIN}`);
|
|
82
117
|
log(`AUTH0_CLIENT_ID: ${process.env.AUTH0_CLIENT_ID}`);
|
|
83
118
|
|
|
84
|
-
process.env.AUTH0_DOMAIN = `docupace-${process.env.BUILD_ENVIRONMENT}-${process.env.BUILD_SITE}.${process.env.AUTH0_REGION_DOMAIN}`;
|
|
119
|
+
process.env.AUTH0_DOMAIN = `docupace-${idpEnvMap[process.env.BUILD_ENVIRONMENT]}-${process.env.BUILD_SITE}.${process.env.AUTH0_REGION_DOMAIN}`;
|
|
85
120
|
|
|
86
121
|
const projectRoot = process.cwd();
|
|
87
122
|
// 4) Clone 'connect-deploy' into CONNECT_DIR
|
|
@@ -89,8 +124,8 @@ export async function connectClone() {
|
|
|
89
124
|
await gitCheckout('connect-deploy', process.env.CONNECT_DIR);
|
|
90
125
|
|
|
91
126
|
await gitCheckout(
|
|
92
|
-
`${connectToEnv}-site-settings`,
|
|
93
|
-
`${process.env.CONNECT_DIR}/${connectToEnv}-site-settings`,
|
|
127
|
+
`${siteSettingsEnvMap[connectToEnv]}-site-settings`,
|
|
128
|
+
`${process.env.CONNECT_DIR}/${siteSettingsEnvMap[connectToEnv]}-site-settings`,
|
|
94
129
|
);
|
|
95
130
|
|
|
96
131
|
// 5) Create site clone (emulating the dock.sh call)
|
|
@@ -123,7 +158,7 @@ export async function connectClone() {
|
|
|
123
158
|
try {
|
|
124
159
|
// Execute the shell command
|
|
125
160
|
const result =
|
|
126
|
-
|
|
161
|
+
await $`cd ${cloneFrom} && bash dock.sh clone ${connectToEnv} ${process.env.BUILD_SITE} ${process.env.IMAGE_VERSION}`;
|
|
127
162
|
await $`cd ${cloneTo} && git checkout master && git pull --ff-only`;
|
|
128
163
|
await $`cd ${cloneTo} && git remote -v`;
|
|
129
164
|
await $`cd ${cloneTo} && git branch`;
|
|
@@ -145,31 +180,33 @@ export async function connectClone() {
|
|
|
145
180
|
log('Site already exists. Continuing Auth0 setup...');
|
|
146
181
|
}
|
|
147
182
|
|
|
148
|
-
await (async () => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
183
|
+
// await (async () => {
|
|
184
|
+
// try {
|
|
185
|
+
// // Execute the shell command
|
|
186
|
+
// //await getAuth0Metadata(process.env.BUILD_SITE, connectToEnv);
|
|
187
|
+
// const result = await $`cd ${cloneTo} && bash dock.sh getAuth0Metadata`;
|
|
188
|
+
// console.log('Command succeeded:');
|
|
189
|
+
// console.log('stdout:', result.stdout); // Standard output
|
|
190
|
+
// console.log('stderr:', result.stderr); // Standard error
|
|
191
|
+
// } catch (error) {
|
|
192
|
+
// console.error('Command failed:');
|
|
193
|
+
// console.error('Exit Code:', error._code); // Exit code of the command
|
|
194
|
+
// console.error('Signal:', error._signal); // Signal that caused termination (if any)
|
|
195
|
+
// console.error('stdout:', error._stdout); // Standard output
|
|
196
|
+
// console.error('stderr:', error._stderr); // Standard error
|
|
197
|
+
// }
|
|
198
|
+
// })();
|
|
163
199
|
|
|
164
200
|
// 7) Check conf files, print logs
|
|
165
|
-
await $`grep "auth0" ${path.join(cloneTo, 'conf/application.conf')}`;
|
|
166
|
-
await $`ls -all ${path.join(cloneTo, 'conf')}`;
|
|
167
|
-
await $`ls -all ${path.join(cloneTo, 'conf/saml')}`;
|
|
168
|
-
await $`cat ${path.join(cloneTo, 'conf/saml/auth0.xml')}`;
|
|
201
|
+
// await $`grep "auth0" ${path.join(cloneTo, 'conf/application.conf')}`;
|
|
202
|
+
// await $`ls -all ${path.join(cloneTo, 'conf')}`;
|
|
203
|
+
// await $`ls -all ${path.join(cloneTo, 'conf/saml')}`;
|
|
204
|
+
// await $`cat ${path.join(cloneTo, 'conf/saml/auth0.xml')}`;
|
|
169
205
|
|
|
170
206
|
// 8) Git add, commit, push
|
|
171
|
-
await $`cd ${cloneTo} && git add ./conf/application.conf ./conf/saml/auth0.xml`;
|
|
172
|
-
await $`cd ${cloneTo} && git
|
|
207
|
+
// await $`cd ${cloneTo} && git add ./conf/application.conf ./conf/saml/auth0.xml`;
|
|
208
|
+
//await $`cd ${cloneTo} && git add ./conf/application.conf`;
|
|
209
|
+
//await $`cd ${cloneTo} && git status`;
|
|
173
210
|
|
|
174
211
|
const numChanges = (await $`cd ${cloneTo} && git diff-index HEAD`).stdout
|
|
175
212
|
.split('\n')
|
|
@@ -181,6 +218,7 @@ export async function connectClone() {
|
|
|
181
218
|
log('About to commit changes to git');
|
|
182
219
|
await $`cd ${cloneTo} && git commit -m ${message}`;
|
|
183
220
|
await $`cd ${cloneTo} && git push -u origin master`;
|
|
221
|
+
//await getAuth0Metadata(process.env.BUILD_SITE, connectToEnv);
|
|
184
222
|
} else {
|
|
185
223
|
log(
|
|
186
224
|
'No changes have been made. The site likely already has the correct configuration.',
|
package/src/next/haproxy.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from 'path';
|
|
|
4
4
|
|
|
5
5
|
export async function haproxySync() {
|
|
6
6
|
const cluster = process.env.HAPROXY_CLUSTER;
|
|
7
|
-
if (cluster !== 'preprod' && cluster !== 'stage') {
|
|
7
|
+
if (cluster !== 'preprod' && cluster !== 'stage' && cluster !== 'prod-www3') {
|
|
8
8
|
console.log('Error: Cluster must be preprod or stage');
|
|
9
9
|
process.exit(1);
|
|
10
10
|
}
|
|
@@ -22,6 +22,10 @@ export async function haproxySync() {
|
|
|
22
22
|
host: '10.12.28.10',
|
|
23
23
|
branch: 'INFP-6565-haproxy-prod-implementation',
|
|
24
24
|
},
|
|
25
|
+
'prod-www3': {
|
|
26
|
+
host: '10.13.28.45',
|
|
27
|
+
branch: 'INFP-6565-haproxy-prod-implementation',
|
|
28
|
+
},
|
|
25
29
|
};
|
|
26
30
|
|
|
27
31
|
const scriptContent = `
|