@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docupace/pipeline",
3
- "version": "1.0.47",
3
+ "version": "1.0.49",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -146,7 +146,7 @@ uiMain:
146
146
  : ''
147
147
  }
148
148
  image:
149
- repository: registry.paperout.com/docupace-ui-main-${env}-docker-local/docupace-ui-main
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'
@@ -10,14 +10,15 @@ export async function getAuth0Metadata(site, env) {
10
10
  try {
11
11
  const connectDeployRepoPath = await cloneRepository('connect-deploy');
12
12
 
13
- if (env === 'qa') {
14
- console.log(
15
- `The environment is: (${env}), but connect-deploy has preprod instead`,
16
- );
17
- process.chdir(`${connectDeployRepoPath}/envs/preprod/${site}`);
18
- } else {
19
- process.chdir(`${connectDeployRepoPath}/envs/${env}/${site}`);
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(
@@ -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 <tagPrefix>')
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);
@@ -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://www2.paperout.com/${site}_uat`,
23
- docupaceHost: () => 'www2.paperout.com',
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://www2.paperout.com/${site}_staging`,
29
- docupaceHost: () => 'www2.paperout.com',
30
- ccUrl: (site) => `https://${site}-cc.stg.dpai.tech`,
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://www2.paperout.com/${site}`,
35
- docupaceHost: () => 'www2.paperout.com',
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
  };
@@ -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
- stg: 'stg',
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-las',
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 connectToEnv = connectUIEnvMap[process.env.BUILD_ENVIRONMENT];
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
- await $`cd ${cloneFrom} && bash dock.sh clone ${connectToEnv} ${process.env.BUILD_SITE} ${process.env.IMAGE_VERSION}`;
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
- try {
150
- // Execute the shell command
151
- const result = await $`cd ${cloneTo} && bash dock.sh getAuth0Metadata`;
152
- console.log('Command succeeded:');
153
- console.log('stdout:', result.stdout); // Standard output
154
- console.log('stderr:', result.stderr); // Standard error
155
- } catch (error) {
156
- console.error('Command failed:');
157
- console.error('Exit Code:', error._code); // Exit code of the command
158
- console.error('Signal:', error._signal); // Signal that caused termination (if any)
159
- console.error('stdout:', error._stdout); // Standard output
160
- console.error('stderr:', error._stderr); // Standard error
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 status`;
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.',
@@ -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 = `