@leverege/build-tools 2.8.11 → 2.8.12

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 (78) hide show
  1. package/lib/server/repo-init/RepoInit.js +3 -4
  2. package/lib/server/repo-init/config.tgz +0 -0
  3. package/lib/server/service-man/Config.js +45 -0
  4. package/lib/server/service-man/ServiceMan.js +42 -0
  5. package/lib/server/service-man/index.js +6 -0
  6. package/lib/server/service-man/utils/Shell.js +102 -0
  7. package/lib/server/service-man/utils/VersionCheck.js +82 -0
  8. package/lib/server/service-man/utils/index.js +67 -0
  9. package/lib/server/unleash.js +8 -1
  10. package/lib/web/service-man/Config.js +45 -0
  11. package/lib/web/service-man/ServiceMan.js +42 -0
  12. package/lib/web/service-man/index.js +6 -0
  13. package/lib/web/service-man/utils/Shell.js +102 -0
  14. package/lib/web/service-man/utils/VersionCheck.js +82 -0
  15. package/lib/web/service-man/utils/index.js +67 -0
  16. package/lib/web/unleash.js +8 -1
  17. package/package.json +5 -8
  18. package/src/helm-starters/baseline/Chart.yaml +4 -0
  19. package/src/helm-starters/baseline/templates/NOTES.txt +52 -0
  20. package/src/helm-starters/baseline/templates/configmap.yaml +6 -0
  21. package/src/helm-starters/baseline/templates/deployment.yaml +97 -0
  22. package/src/helm-starters/baseline/templates/ingress.yaml +17 -0
  23. package/src/helm-starters/baseline/templates/pdb.yaml +9 -0
  24. package/src/helm-starters/baseline/templates/service.yaml +16 -0
  25. package/src/helm-starters/baseline/templates/serviceaccount.yaml +10 -0
  26. package/src/helm-starters/baseline/values.yaml +57 -0
  27. package/src/helm-starters/deprecated/templates/hpa.yaml +12 -0
  28. package/src/pkgck +16 -3
  29. package/src/sa-tools/roles/baseline/leveregeBigQueryReader.json +10 -0
  30. package/src/sa-tools/roles/baseline/leveregeBigQueryWriter.json +10 -0
  31. package/src/sa-tools/roles/baseline/leveregeCloudFunctionsAdmin.json +12 -0
  32. package/src/sa-tools/roles/baseline/leveregeFirebaseUpdates.json +8 -0
  33. package/src/sa-tools/roles/baseline/leveregeLogsViewer.json +8 -0
  34. package/src/sa-tools/roles/{LeveregePubSubAccess.json → baseline/leveregePubSub.json} +3 -3
  35. package/src/sa-tools/roles/baseline/leveregeSecretsViewer.json +8 -0
  36. package/src/sa-tools/roles/baseline/leveregeStorageObjectAccess.json +10 -0
  37. package/src/sa-tools/roles/baseline/leveregeSvcAcctActor.json +8 -0
  38. package/src/sa-tools/roles/baseline/leveregeSvcAcctTokenCreator.json +8 -0
  39. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeBigQueryReader.json +10 -0
  40. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeBigQueryWriter.json +10 -0
  41. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeCloudFunctionsAdmin.json +12 -0
  42. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeFirebaseUpdates.json +8 -0
  43. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeLogsViewer.json +8 -0
  44. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregePubSub.json +13 -0
  45. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeSecretsViewer.json +8 -0
  46. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeStorageObjectAccess.json +10 -0
  47. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeSvcAcctActor.json +8 -0
  48. package/src/sa-tools/roles/leverege-dev-john/20220113-121423/leveregeSvcAcctTokenCreator.json +8 -0
  49. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeBigQueryReader.json +10 -0
  50. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeBigQueryWriter.json +10 -0
  51. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeCloudFunctionsAdmin.json +12 -0
  52. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeFirebaseUpdates.json +8 -0
  53. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeLogsViewer.json +8 -0
  54. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregePubSub.json +13 -0
  55. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeSecretsViewer.json +8 -0
  56. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeStorageObjectAccess.json +10 -0
  57. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeSvcAcctActor.json +8 -0
  58. package/src/sa-tools/roles/prd-indoor-zoning/20220113-121935/leveregeSvcAcctTokenCreator.json +8 -0
  59. package/src/sa-tools/roles-grab +30 -0
  60. package/src/sa-tools/roles-push +19 -0
  61. package/src/service-man/Config.js +40 -0
  62. package/src/service-man/ServiceMan.js +32 -0
  63. package/src/service-man/index.js +5 -0
  64. package/src/service-man/utils/Shell.js +95 -0
  65. package/src/service-man/utils/VersionCheck.js +77 -0
  66. package/src/service-man/utils/index.js +54 -0
  67. package/src/unleash.js +8 -2
  68. package/src/sa-tools/roles/LeveregeSecretManagerAccess.json +0 -8
  69. /package/src/helm-starters/{chart → baseline}/templates/hpa.yaml +0 -0
  70. /package/src/helm-starters/{chart → deprecated}/Chart.yaml +0 -0
  71. /package/src/helm-starters/{chart → deprecated}/templates/NOTES.txt +0 -0
  72. /package/src/helm-starters/{chart → deprecated}/templates/configmap.yaml +0 -0
  73. /package/src/helm-starters/{chart → deprecated}/templates/deployment.yaml +0 -0
  74. /package/src/helm-starters/{chart → deprecated}/templates/ingress.yaml +0 -0
  75. /package/src/helm-starters/{chart → deprecated}/templates/pdb.yaml +0 -0
  76. /package/src/helm-starters/{chart → deprecated}/templates/service.yaml +0 -0
  77. /package/src/helm-starters/{chart → deprecated}/templates/serviceaccount.yaml +0 -0
  78. /package/src/helm-starters/{chart → deprecated}/values.yaml +0 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "description": "Leverege read / write access to Storage Objects",
3
+ "includedPermissions": [
4
+ "storage.objects.create",
5
+ "storage.objects.delete",
6
+ "storage.objects.get"
7
+ ],
8
+ "stage": "BETA",
9
+ "title": "Leverege Storage Object Admin"
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege service account act as other user",
3
+ "includedPermissions": [
4
+ "iam.serviceAccounts.actAs"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Svc Acct Impersonation"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege IAM blob signing access",
3
+ "includedPermissions": [
4
+ "iam.serviceAccounts.signBlob"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Svc Acct Token Creator"
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "description": "Leverege BQ data accessor",
3
+ "includedPermissions": [
4
+ "bigquery.jobs.create",
5
+ "bigquery.tables.create",
6
+ "bigquery.tables.getData"
7
+ ],
8
+ "stage": "BETA",
9
+ "title": "Leverege Big Query Reader"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "description": "Leverege Big Query Writer",
3
+ "includedPermissions": [
4
+ "bigquery.datasets.get",
5
+ "bigquery.tables.get",
6
+ "bigquery.tables.updateData"
7
+ ],
8
+ "stage": "BETA",
9
+ "title": "Leverege Big Query Writer"
10
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "description": "Leverege limited Cloud Functions Admin",
3
+ "includedPermissions": [
4
+ "cloudfunctions.functions.create",
5
+ "cloudfunctions.functions.delete",
6
+ "cloudfunctions.functions.get",
7
+ "cloudfunctions.functions.sourceCodeSet",
8
+ "cloudfunctions.functions.update"
9
+ ],
10
+ "stage": "BETA",
11
+ "title": "Leverege Cloud Functions Admin"
12
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege Firebase Updates Access",
3
+ "includedPermissions": [
4
+ "firebasedatabase.instances.update"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Firebase Updates"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege view access to logs",
3
+ "includedPermissions": [
4
+ "logging.logEntries.list"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Logs Viewer"
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "description": "Leverege Pub/Sub",
3
+ "includedPermissions": [
4
+ "pubsub.subscriptions.consume",
5
+ "pubsub.subscriptions.create",
6
+ "pubsub.topics.attachSubscription",
7
+ "pubsub.topics.create",
8
+ "pubsub.topics.list",
9
+ "pubsub.topics.publish"
10
+ ],
11
+ "stage": "BETA",
12
+ "title": "Leverege Pub/Sub"
13
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Custom Secrets Manager Access",
3
+ "includedPermissions": [
4
+ "secretmanager.versions.access"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Secret Viewer"
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "description": "Leverege read / write access to Storage Objects",
3
+ "includedPermissions": [
4
+ "storage.objects.create",
5
+ "storage.objects.delete",
6
+ "storage.objects.get"
7
+ ],
8
+ "stage": "BETA",
9
+ "title": "Leverege Storage Object Admin"
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege service account act as other user",
3
+ "includedPermissions": [
4
+ "iam.serviceAccounts.actAs"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Svc Acct Impersonation"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Leverege IAM blob signing access",
3
+ "includedPermissions": [
4
+ "iam.serviceAccounts.signBlob"
5
+ ],
6
+ "stage": "BETA",
7
+ "title": "Leverege Svc Acct Token Creator"
8
+ }
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+ #
3
+ # To fetch Leverege custom role names:
4
+ # gcloud --project=<PROJ_NAME> iam roles list --filter=Leverege | grep name
5
+ #
6
+ LEVEREGE_ROLES=(
7
+ leveregeBigQueryReader
8
+ leveregeBigQueryWriter
9
+ leveregeCloudFunctionsAdmin
10
+ leveregeFirebaseUpdates
11
+ leveregeLogsViewer
12
+ leveregePubSub
13
+ leveregeSecretsViewer
14
+ leveregeStorageObjectAccess
15
+ leveregeSvcAcctActor
16
+ leveregeSvcAcctTokenCreator
17
+ )
18
+
19
+ PROJ=${1:-leverege-sandbox}
20
+ DTS="`date +\"%Y%m%d-%H%M%S\"`"
21
+ ROLESDIR="roles/${PROJ}/${DTS}"
22
+ mkdir -p $ROLESDIR
23
+
24
+ for ROLE in "${LEVEREGE_ROLES[@]}";
25
+ do
26
+ JSON="${ROLESDIR}/${ROLE}.json"
27
+ printf "Fetching role $ROLE\n"
28
+ gcloud --project leverege-sandbox iam roles describe $ROLE \
29
+ --format=json | jq '{description,includedPermissions,stage,title}' > $JSON
30
+ done
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+
3
+ PROJ="${1:-leverege-sandbox}"
4
+
5
+ printf "\n Create/Update IAM Roles for => $PROJ\n\n"
6
+
7
+ cd roles/baseline
8
+ for JSON in leverege*.json;
9
+ do
10
+ ROLE=`basename $JSON .json`
11
+ IAM_VERB="create"
12
+
13
+ gcloud --project $PROJ iam roles describe $ROLE &>/dev/null
14
+ [ "$?" == "0" ] && IAM_VERB="update"
15
+
16
+ printf "Attempting to $IAM_VERB role $ROLE on $PROJ\n"
17
+ gcloud --project $PROJ iam roles $IAM_VERB $ROLE --file $JSON
18
+ done
19
+ cd -
@@ -0,0 +1,40 @@
1
+ const chalk = require( 'chalk' )
2
+ const fs = require( 'fs' )
3
+
4
+ class Config {
5
+
6
+ constructor() {
7
+ this.configDir = `${__dirname}/config`
8
+ const jsonText = fs.readFileSync( `${this.configDir}/config.json` )
9
+ this.config = JSON.parse( jsonText )
10
+ this.verifyConfig( this.config )
11
+ }
12
+
13
+ verifyConfig( config ) {
14
+ /**
15
+ * Verify reference sources exist.
16
+ */
17
+ let errors
18
+ config.templates.forEach( ( template ) => {
19
+ if ( !template.enabled ) return
20
+ template.sources.forEach( ( source ) => {
21
+ if ( typeof source === 'object' ) {
22
+ console.log( source, 'STILL TODO' )
23
+ } else {
24
+ const fullName = `${this.configDir}/${source}`
25
+ if ( !fs.existsSync( fullName ) ) {
26
+ console.log( chalk.red(
27
+ `***ERROR: missing source ${fullName}`
28
+ ) )
29
+ errors = true
30
+ }
31
+ }
32
+ } )
33
+ } )
34
+ if ( errors ) { process.exit( 1 ) }
35
+ }
36
+ }
37
+
38
+ module.exports = {
39
+ Config,
40
+ }
@@ -0,0 +1,32 @@
1
+ const chalk = require( 'chalk' )
2
+ const cliArgs = require( 'command-line-args' )
3
+ const cliHelp = require( 'command-line-usage' )
4
+ const execa = require( 'execa' )
5
+ const figlet = require( 'figlet' )
6
+
7
+ const { Config } = require( './Config' )
8
+ const { clear, condir, proceed, Shell, VersionCheck } = require( './utils' )
9
+
10
+ const greet = async () => {
11
+ clear()
12
+ console.log(
13
+ chalk.keyword( 'orange' ).bold(
14
+ figlet.textSync( 'service-man', { horizontalLayout : 'full' } )
15
+ ), chalk.green`
16
+
17
+ This utility attempts to ease the pain of managing IAM roles and the
18
+ creation of service accounts for new clusters and services.
19
+ `
20
+ )
21
+ }
22
+
23
+ const start = async () => {
24
+
25
+ await greet()
26
+
27
+ await proceed()
28
+
29
+ console.log( 'Weeeeee....' )
30
+ }
31
+
32
+ exports.start = start
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ const ServiceMan = require( './ServiceMan' )
4
+
5
+ ServiceMan.start()
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Shell like things can go in here. I mostly created this to make it
3
+ * easier to push and pop around the directory trees for repo-init. It
4
+ * might make sense to add other things in here to make writing node CLI
5
+ * commands a little less painful.
6
+ */
7
+ const fs = require( 'fs' )
8
+ const process = require( 'process' )
9
+
10
+ const dirStack = []
11
+
12
+ /**
13
+ * Simple wrapper functions for debugging.
14
+ */
15
+ const cwd = () => {
16
+ return process.cwd()
17
+ }
18
+
19
+ const chdir = ( dir ) => {
20
+ return process.chdir( dir )
21
+ }
22
+
23
+ const dirs = () => {
24
+ console.log( dirStack )
25
+ }
26
+
27
+ const pushd = ( dir ) => {
28
+ if ( !dir ) {
29
+ throw new Error( 'pushd: no other directory' )
30
+ }
31
+
32
+ dirStack.push( cwd() )
33
+ chdir( dir )
34
+ }
35
+
36
+ const throwIfEmptyStack = () => {
37
+ if ( dirStack.length === 0 ) {
38
+ throw new Error( 'popd: directory stack empty' )
39
+ }
40
+ }
41
+
42
+ const popd = ( all ) => {
43
+ throwIfEmptyStack()
44
+ chdir( dirStack.pop() )
45
+ }
46
+
47
+ const popdAll = () => {
48
+ throwIfEmptyStack()
49
+ chdir( dirStack[0] )
50
+ dirStack.length = 0
51
+ }
52
+
53
+ /**
54
+ * This function will do an upwards traversal of a file tree looking for the
55
+ * specified file. An error will be thrown if the file is not found within
56
+ * maxLevels.
57
+ */
58
+ const reverseFindFile = ( findFile, options ) => {
59
+ pushd( options.startDir || cwd() )
60
+ let maxLevels = options.maxLevels || 5
61
+ let fileRoot
62
+ while ( maxLevels > 0 ) {
63
+ if ( fs.existsSync( findFile ) ) {
64
+ fileRoot = cwd()
65
+ break
66
+ }
67
+ pushd( '..' ) // walk up the tree
68
+ maxLevels -= 1
69
+ }
70
+
71
+ popdAll()
72
+
73
+ if ( !fileRoot ) {
74
+ throw new Error( `reverseFindFile: ${findFile} not found` )
75
+ }
76
+
77
+ return fileRoot
78
+ }
79
+
80
+ const findRepoRoot = () => {
81
+ return reverseFindFile( 'package.json', { startDir : __dirname } )
82
+ }
83
+
84
+ module.exports = {
85
+ dirs,
86
+ pushd,
87
+ popd,
88
+ popdAll,
89
+
90
+ reverseFindFile,
91
+ findRepoRoot,
92
+
93
+ cwd,
94
+ chdir,
95
+ }
@@ -0,0 +1,77 @@
1
+ const chalk = require( 'chalk' )
2
+ const coerce = require( 'semver/functions/coerce' )
3
+ const semverLt = require( 'semver/functions/lt' )
4
+ const satisfies = require( 'semver/functions/satisfies' )
5
+
6
+ /**
7
+ * This function verifies the specified version falls in this range:
8
+ *
9
+ * minimum >= current < maximum
10
+ *
11
+ * The params will be semver coerced where a version of 12 will be coerced
12
+ * to 12.0.0, a version of 12.18.4-beta.3 will be coerced to 12.18.4.
13
+ *
14
+ * Note that this function still has its references to node, but could be
15
+ * made entirely generic if need be.
16
+ *
17
+ * @param {Object} params
18
+ * @param {String} params.current - version to check
19
+ * @param {String} params.minimum - can be equal or greater to this
20
+ * @param {String} params.maximum - must be less than this
21
+ * @param {String} params.preferred - the most acceptable version
22
+ */
23
+ function validate( params = {} ) {
24
+ const throwChalk = ( error ) => {
25
+ const errorStr = chalk.red.bold( '***ERROR =>' )
26
+ throw new Error(
27
+ chalk.keyword( 'orange' ).bold( `\n${errorStr} ${error}` )
28
+ )
29
+ }
30
+
31
+ if ( !params || !params.current || !params.minimum || !params.maximum ) {
32
+ throwChalk(
33
+ 'current, minimum and maximum parameters are required by validate'
34
+ )
35
+ }
36
+
37
+ const coercedVersions = ( sems ) => {
38
+ return Object.keys( sems ).reduce( ( obj, key ) => {
39
+ const coerced = obj // avoid eslint warning
40
+ coerced[key] = coerce( sems[key] ).version
41
+ return coerced
42
+ }, {} )
43
+ }
44
+
45
+ const { current, minimum, maximum, preferred } = coercedVersions( params )
46
+
47
+ /**
48
+ * Verify that the current version falls within the accepted ranges.
49
+ */
50
+ const rangeStr = `>=${minimum} <${maximum}`
51
+ if ( !satisfies( current, rangeStr ) ) {
52
+ throwChalk(
53
+ `Version ${current} is outside the accepted range of ${rangeStr}`
54
+ )
55
+ }
56
+
57
+ /**
58
+ * Suggest upgrading to the currently recommended version.
59
+ */
60
+ if ( preferred && semverLt( current, preferred ) ) {
61
+ console.log(
62
+ chalk.keyword( 'orange' ).bold( `
63
+ ${chalk.yellow.bold( ' *** HEADS UP ***' )}
64
+ Running node version => ${chalk.yellow.bold( `v${current}` )} (which should work)
65
+ Preferred version is => ${chalk.green.bold( `v${preferred}` )}
66
+
67
+ Also, a reinstall of the build-tools may be necessary after any node upgrade
68
+ ${chalk.cyan.bold( 'npm i -g @leverege/build-tools' )}
69
+ `
70
+ )
71
+ )
72
+ }
73
+ }
74
+
75
+ module.exports = {
76
+ validate,
77
+ }
@@ -0,0 +1,54 @@
1
+ const inquirer = require( 'inquirer' )
2
+ const Shell = require( './Shell' )
3
+ const VersionCheck = require( './VersionCheck' )
4
+
5
+ /**
6
+ * Clears the screen and optionally homes the cursor.
7
+ */
8
+ const clear = ( home = true ) => {
9
+ // console.log( ( home ? '\x1B[0f' : '' ) + '\x1B[2J' )
10
+ console.log( `${home ? '\x1B[0f' : ''}\x1B[2J` )
11
+ }
12
+
13
+ /**
14
+ * A simple object dumping convenience.
15
+ */
16
+ const condir = ( log, thing ) => {
17
+ console.dir( { log, thing }, { depth : 8, colors : true } ) // eslint-disable-line
18
+ }
19
+
20
+ /**
21
+ * General "yes" to proceed function.
22
+ */
23
+ const proceed = async ( query = 'Do you wish to proceed?' ) => {
24
+ await inquirer.prompt( [
25
+ {
26
+ type : 'confirm',
27
+ name : 'proceed',
28
+ message : query,
29
+ default : true,
30
+ }
31
+ ]
32
+ ).then( ( answer ) => {
33
+ if ( !answer.proceed ) { process.exit( 0 ) }
34
+ } )
35
+ }
36
+
37
+ /**
38
+ * A simple mS sleeper.
39
+ */
40
+ const sleep = ( ms = 0 ) => {
41
+ return new Promise( ( resolve ) => {
42
+ setTimeout( resolve, ms )
43
+ } )
44
+ }
45
+
46
+ module.exports = {
47
+ clear,
48
+ condir,
49
+ proceed,
50
+ sleep,
51
+ pause : sleep,
52
+ Shell,
53
+ VersionCheck,
54
+ }
package/src/unleash.js CHANGED
@@ -2,10 +2,15 @@
2
2
 
3
3
  const execa = require( 'execa' )
4
4
  const SimpleGit = require( 'simple-git' )
5
+
5
6
  const git = new SimpleGit()
6
7
 
7
8
  const getCurrentBranchName = async () => {
8
9
  const branchInfo = await git.branch()
10
+
11
+ // first check to see if there are no branches - new repo?
12
+ if ( Object.keys( branchInfo.branches ).length === 0 ) { return '' }
13
+
9
14
  return Object
10
15
  .entries( branchInfo.branches )
11
16
  .find( ( [ name, info ] ) => ( info.current ) )[0]
@@ -24,13 +29,14 @@ const npmRunner = async ( script ) => {
24
29
  } catch ( err ) {
25
30
  process.exit( 1 )
26
31
  }
32
+ return undefined
27
33
  }
28
34
 
29
35
  ( async () => {
30
36
  if ( await isProtected() ) {
31
37
  const script = [ 'test', 'lint' ]
32
- for( let i = 0; i < script.length; i++ ) {
33
- await npmRunner( script[ i ] )
38
+ for ( let i = 0; i < script.length; i++ ) {
39
+ await npmRunner( script[i] )
34
40
  }
35
41
  } else {
36
42
  process.exit( 0 )
@@ -1,8 +0,0 @@
1
- {
2
- "title": "Leverege Secret Manager Access (ro)",
3
- "description": "Read only access to the Secrets in Secrets Manager",
4
- "includedPermissions": [
5
- "secretmanager.versions.access"
6
- ],
7
- "stage": "BETA"
8
- }