@forge/cli 12.6.2-next.3-experimental-2578ec1 → 12.7.0-next.11-experimental-75d036a

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 (53) hide show
  1. package/CHANGELOG.md +134 -7
  2. package/npm-shrinkwrap.json +71 -45
  3. package/out/command-line/controller/tunnel-controller.d.ts +5 -1
  4. package/out/command-line/controller/tunnel-controller.d.ts.map +1 -1
  5. package/out/command-line/controller/tunnel-controller.js +89 -19
  6. package/out/command-line/controller/tunnel-controller.js.map +1 -1
  7. package/out/command-line/dependency-injection.d.ts.map +1 -1
  8. package/out/command-line/dependency-injection.js +3 -3
  9. package/out/command-line/dependency-injection.js.map +1 -1
  10. package/out/command-line/index.d.ts.map +1 -1
  11. package/out/command-line/index.js +3 -1
  12. package/out/command-line/index.js.map +1 -1
  13. package/out/command-line/register-app-commands.js +1 -1
  14. package/out/command-line/register-app-commands.js.map +1 -1
  15. package/out/command-line/register-containers-commands.d.ts.map +1 -1
  16. package/out/command-line/register-containers-commands.js +0 -64
  17. package/out/command-line/register-containers-commands.js.map +1 -1
  18. package/out/command-line/register-installation-commands.d.ts.map +1 -1
  19. package/out/command-line/register-installation-commands.js +2 -1
  20. package/out/command-line/register-installation-commands.js.map +1 -1
  21. package/out/command-line/register-repositories-commands.d.ts +3 -0
  22. package/out/command-line/register-repositories-commands.d.ts.map +1 -0
  23. package/out/command-line/register-repositories-commands.js +75 -0
  24. package/out/command-line/register-repositories-commands.js.map +1 -0
  25. package/out/command-line/register-tunnel-commands.d.ts +1 -1
  26. package/out/command-line/register-tunnel-commands.d.ts.map +1 -1
  27. package/out/command-line/register-tunnel-commands.js +10 -4
  28. package/out/command-line/register-tunnel-commands.js.map +1 -1
  29. package/out/command-line/uninstall-command-helpers.d.ts +1 -0
  30. package/out/command-line/uninstall-command-helpers.d.ts.map +1 -1
  31. package/out/command-line/uninstall-command-helpers.js +16 -1
  32. package/out/command-line/uninstall-command-helpers.js.map +1 -1
  33. package/out/containers/container-command.d.ts +3 -1
  34. package/out/containers/container-command.d.ts.map +1 -1
  35. package/out/containers/container-command.js +1 -0
  36. package/out/containers/container-command.js.map +1 -1
  37. package/out/custom-scopes/types.d.ts +2 -0
  38. package/out/custom-scopes/types.d.ts.map +1 -0
  39. package/out/custom-scopes/types.js +3 -0
  40. package/out/custom-scopes/types.js.map +1 -0
  41. package/out/custom-scopes/validate/index.d.ts +8 -0
  42. package/out/custom-scopes/validate/index.d.ts.map +1 -0
  43. package/out/custom-scopes/validate/index.js +24 -0
  44. package/out/custom-scopes/validate/index.js.map +1 -0
  45. package/out/custom-scopes/validate/schema.json +48 -0
  46. package/out/service/installation-service.d.ts.map +1 -1
  47. package/out/service/installation-service.js +5 -2
  48. package/out/service/installation-service.js.map +1 -1
  49. package/out/service/tunnel-service.d.ts +9 -0
  50. package/out/service/tunnel-service.d.ts.map +1 -1
  51. package/out/service/tunnel-service.js +23 -3
  52. package/out/service/tunnel-service.js.map +1 -1
  53. package/package.json +16 -11
package/CHANGELOG.md CHANGED
@@ -1,18 +1,145 @@
1
1
  # @forge/cli
2
2
 
3
- ## 12.6.2-next.3-experimental-2578ec1
3
+ ## 12.7.0-next.11-experimental-75d036a
4
+
5
+ ### Minor Changes
6
+
7
+ - d3008b5: Create new commands for listing repositories and images
8
+ - 4947176: Adding self managed tunnel support
9
+ - 8ff224b: Add automatic spinning up of docker compose stacks for containers when tunneling
10
+ - 52199aa: Udpate Label From Automation (EAP) to Automation (Preview)
4
11
 
5
12
  ### Patch Changes
6
13
 
14
+ - a1c8e19:
15
+ - 3467178: fix filtering
16
+ - Updated dependencies [b1f257c]
17
+ - Updated dependencies [2ac3cde]
18
+ - Updated dependencies [96d7a67]
19
+ - Updated dependencies [d3008b5]
20
+ - Updated dependencies [4947176]
7
21
  - Updated dependencies [5143f1b]
8
22
  - Updated dependencies [90ee56f]
23
+ - Updated dependencies [8ff224b]
24
+ - Updated dependencies [a1c8e19]
25
+ - Updated dependencies [e65918b]
26
+ - Updated dependencies [ec8000d]
27
+ - Updated dependencies [4afc4fb]
28
+ - Updated dependencies [873a240]
9
29
  - Updated dependencies [f5d3945]
10
- - @forge/egress@2.1.0-next.0-experimental-2578ec1
11
- - @forge/cli-shared@8.7.2-next.1-experimental-2578ec1
12
- - @forge/manifest@10.7.0-next.0-experimental-2578ec1
13
- - @forge/lint@5.11.5-next.3-experimental-2578ec1
14
- - @forge/tunnel@6.2.2-next.3-experimental-2578ec1
15
- - @forge/bundler@6.1.9-next.3-experimental-2578ec1
30
+ - @forge/manifest@10.7.0-next.5-experimental-75d036a
31
+ - @forge/cli-shared@8.8.0-next.9-experimental-75d036a
32
+ - @forge/tunnel@6.3.0-next.11-experimental-75d036a
33
+ - @forge/egress@2.1.0-next.0-experimental-75d036a
34
+ - @forge/runtime@6.1.0-next.0-experimental-75d036a
35
+ - @forge/bundler@6.1.9-next.11-experimental-75d036a
36
+ - @forge/lint@5.11.5-next.11-experimental-75d036a
37
+
38
+ ## 12.7.0-next.11
39
+
40
+ ### Patch Changes
41
+
42
+ - Updated dependencies [b1f257c]
43
+ - @forge/manifest@10.7.0-next.5
44
+ - @forge/bundler@6.1.9-next.11
45
+ - @forge/cli-shared@8.8.0-next.9
46
+ - @forge/lint@5.11.5-next.11
47
+ - @forge/tunnel@6.3.0-next.11
48
+
49
+ ## 12.7.0-next.10
50
+
51
+ ### Minor Changes
52
+
53
+ - d3008b5: Create new commands for listing repositories and images
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [d3008b5]
58
+ - @forge/cli-shared@8.8.0-next.8
59
+ - @forge/bundler@6.1.9-next.10
60
+ - @forge/lint@5.11.5-next.10
61
+ - @forge/tunnel@6.3.0-next.10
62
+
63
+ ## 12.7.0-next.9
64
+
65
+ ### Patch Changes
66
+
67
+ - a1c8e19:
68
+ - Updated dependencies [a1c8e19]
69
+ - @forge/cli-shared@8.8.0-next.7
70
+ - @forge/bundler@6.1.9-next.9
71
+ - @forge/lint@5.11.5-next.9
72
+ - @forge/tunnel@6.3.0-next.9
73
+
74
+ ## 12.7.0-next.8
75
+
76
+ ### Minor Changes
77
+
78
+ - 4947176: Adding self managed tunnel support
79
+
80
+ ### Patch Changes
81
+
82
+ - Updated dependencies [4947176]
83
+ - Updated dependencies [ec8000d]
84
+ - @forge/cli-shared@8.8.0-next.6
85
+ - @forge/tunnel@6.3.0-next.8
86
+ - @forge/manifest@10.7.0-next.4
87
+ - @forge/bundler@6.1.9-next.8
88
+ - @forge/lint@5.11.5-next.8
89
+
90
+ ## 12.7.0-next.7
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [2ac3cde]
95
+ - @forge/manifest@10.7.0-next.3
96
+ - @forge/bundler@6.1.9-next.7
97
+ - @forge/cli-shared@8.8.0-next.5
98
+ - @forge/lint@5.11.5-next.7
99
+ - @forge/tunnel@6.3.0-next.7
100
+
101
+ ## 12.7.0-next.6
102
+
103
+ ### Minor Changes
104
+
105
+ - 52199aa: Udpate Label From Automation (EAP) to Automation (Preview)
106
+
107
+ ### Patch Changes
108
+
109
+ - Updated dependencies [4afc4fb]
110
+ - @forge/manifest@10.7.0-next.2
111
+ - @forge/bundler@6.1.9-next.6
112
+ - @forge/cli-shared@8.8.0-next.4
113
+ - @forge/lint@5.11.5-next.6
114
+ - @forge/tunnel@6.3.0-next.6
115
+
116
+ ## 12.7.0-next.5
117
+
118
+ ### Patch Changes
119
+
120
+ - Updated dependencies [96d7a67]
121
+ - Updated dependencies [e65918b]
122
+ - Updated dependencies [873a240]
123
+ - @forge/manifest@10.7.0-next.1
124
+ - @forge/bundler@6.1.9-next.5
125
+ - @forge/cli-shared@8.8.0-next.3
126
+ - @forge/lint@5.11.5-next.5
127
+ - @forge/tunnel@6.3.0-next.5
128
+
129
+ ## 12.7.0-next.4
130
+
131
+ ### Minor Changes
132
+
133
+ - 8ff224b: Add automatic spinning up of docker compose stacks for containers when tunneling
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [8ff224b]
138
+ - @forge/runtime@6.1.0-next.0
139
+ - @forge/tunnel@6.3.0-next.4
140
+ - @forge/cli-shared@8.8.0-next.2
141
+ - @forge/bundler@6.1.9-next.4
142
+ - @forge/lint@5.11.5-next.4
16
143
 
17
144
  ## 12.6.2-next.3
18
145
 
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "12.6.2-next.3-experimental-2578ec1",
3
+ "version": "12.7.0-next.11-experimental-75d036a",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@forge/cli",
9
- "version": "12.6.2-next.3-experimental-2578ec1",
9
+ "version": "12.7.0-next.11-experimental-75d036a",
10
10
  "hasInstallScript": true,
11
11
  "license": "SEE LICENSE IN LICENSE.txt",
12
12
  "dependencies": {
13
- "@forge/bundler": "6.1.9-next.3-experimental-2578ec1",
14
- "@forge/cli-shared": "8.7.2-next.1-experimental-2578ec1",
15
- "@forge/egress": "2.1.0-next.0-experimental-2578ec1",
13
+ "@forge/bundler": "6.1.9-next.11-experimental-75d036a",
14
+ "@forge/cli-shared": "8.8.0-next.9-experimental-75d036a",
15
+ "@forge/egress": "2.1.0-next.0-experimental-75d036a",
16
16
  "@forge/i18n": "0.0.7",
17
- "@forge/lint": "5.11.5-next.3-experimental-2578ec1",
18
- "@forge/manifest": "10.7.0-next.0-experimental-2578ec1",
19
- "@forge/runtime": "6.0.4",
20
- "@forge/tunnel": "6.2.2-next.3-experimental-2578ec1",
17
+ "@forge/lint": "5.11.5-next.11-experimental-75d036a",
18
+ "@forge/manifest": "10.7.0-next.5-experimental-75d036a",
19
+ "@forge/runtime": "6.1.0-next.0-experimental-75d036a",
20
+ "@forge/tunnel": "6.3.0-next.11-experimental-75d036a",
21
21
  "@forge/util": "2.0.0",
22
22
  "@sentry/node": "7.106.0",
23
23
  "ajv": "^8.12.0",
@@ -32,6 +32,7 @@
32
32
  "dayjs": "^1.11.13",
33
33
  "didyoumean": "^1.2.2",
34
34
  "diff": "^7.0.0",
35
+ "docker-compose": "^1.3.0",
35
36
  "env-paths": "^2.2.1",
36
37
  "exponential-backoff": "^3.1.2",
37
38
  "form-data": "^4.0.4",
@@ -76,6 +77,7 @@
76
77
  "jest-fixtures": "^0.6.0",
77
78
  "jest-matcher-specific-error": "^1.0.0",
78
79
  "jest-when": "^3.6.0",
80
+ "json-schema-to-typescript": "^10.1.5",
79
81
  "jws": "^4.0.0",
80
82
  "memfs": "^4.6.0",
81
83
  "sentry-testkit": "^5.0.10",
@@ -547,9 +549,9 @@
547
549
  }
548
550
  },
549
551
  "node_modules/@forge/bundler": {
550
- "version": "6.1.9-next.3-experimental-2578ec1",
551
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-6.1.9-next.3-experimental-2578ec1.tgz",
552
- "integrity": "sha512-pXJ47NVGvjWtvmw6zh4C2YU9a+A1ACM/zJPQ/o1LldS0ehk4oNw3E+B2qKWKnIJ5Qxya2RruC3TyYp909TQmQQ==",
552
+ "version": "6.1.9-next.11-experimental-75d036a",
553
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-6.1.9-next.11-experimental-75d036a.tgz",
554
+ "integrity": "sha512-o9QFN7ghS4eApJgIg/RulkC4Fl2qXqSnQl7DuKMcg8xinIlp2sFYmdaO8cJHok7eHcIgR6QHLEBWrUDJCqh7Gg==",
553
555
  "license": "SEE LICENSE IN LICENSE.txt",
554
556
  "dependencies": {
555
557
  "@babel/core": "^7.24.0",
@@ -561,10 +563,10 @@
561
563
  "@babel/plugin-transform-react-jsx": "^7.23.4",
562
564
  "@babel/traverse": "^7.24.0",
563
565
  "@babel/types": "^7.24.0",
564
- "@forge/cli-shared": "8.7.2-next.1-experimental-2578ec1",
566
+ "@forge/cli-shared": "8.8.0-next.9-experimental-75d036a",
565
567
  "@forge/i18n": "0.0.7",
566
- "@forge/lint": "5.11.5-next.3-experimental-2578ec1",
567
- "@forge/manifest": "10.7.0-next.0-experimental-2578ec1",
568
+ "@forge/lint": "5.11.5-next.11-experimental-75d036a",
569
+ "@forge/manifest": "10.7.0-next.5-experimental-75d036a",
568
570
  "babel-loader": "^8.3.0",
569
571
  "cheerio": "^1.1.0",
570
572
  "cross-spawn": "^7.0.6",
@@ -584,13 +586,13 @@
584
586
  }
585
587
  },
586
588
  "node_modules/@forge/cli-shared": {
587
- "version": "8.7.2-next.1-experimental-2578ec1",
588
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-8.7.2-next.1-experimental-2578ec1.tgz",
589
- "integrity": "sha512-J41IkZAjc97te44q3zpwHMQxDMxjMeEFIzXiG2VxV0HgJLQeZWL5DIkj0uiH5FDvixB0F267v1Iu0BQ9IrtqDA==",
589
+ "version": "8.8.0-next.9-experimental-75d036a",
590
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-8.8.0-next.9-experimental-75d036a.tgz",
591
+ "integrity": "sha512-4rCnvKenAhtpKp0AV2YwpTaffq9sQQZ9GPciXaq1FtsSBJOA1M8NEaD+WQ6YZqwzjwvaXJ6oPljbGMBrEGEYGw==",
590
592
  "license": "SEE LICENSE IN LICENSE.txt",
591
593
  "dependencies": {
592
594
  "@forge/i18n": "0.0.7",
593
- "@forge/manifest": "10.7.0-next.0-experimental-2578ec1",
595
+ "@forge/manifest": "10.7.0-next.5-experimental-75d036a",
594
596
  "@forge/util": "2.0.0",
595
597
  "@sentry/node": "7.106.0",
596
598
  "adm-zip": "^0.5.10",
@@ -623,9 +625,9 @@
623
625
  }
624
626
  },
625
627
  "node_modules/@forge/csp": {
626
- "version": "5.1.1-next.0-experimental-2578ec1",
627
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-5.1.1-next.0-experimental-2578ec1.tgz",
628
- "integrity": "sha512-YzwolfVXBVaUWFECpL2ol7kVzLRusKWZYOQE3CnzV7JNX5EJFIy5S/VIlMSmbBf/vhLt0NiXvQmiUNimsqo7ag==",
628
+ "version": "5.1.1-next.0-experimental-75d036a",
629
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-5.1.1-next.0-experimental-75d036a.tgz",
630
+ "integrity": "sha512-UnU5Eootmkv/jwV9H+C4QRxsTrZCPclhU0jn5xWmkrCKO6GpXz90BnNMyVaXcGqP4iDkksdGocWJGyDmFyiF4g==",
629
631
  "license": "SEE LICENSE IN LICENSE.txt",
630
632
  "dependencies": {
631
633
  "content-security-policy-parser": "^0.5.0"
@@ -640,9 +642,9 @@
640
642
  }
641
643
  },
642
644
  "node_modules/@forge/egress": {
643
- "version": "2.1.0-next.0-experimental-2578ec1",
644
- "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-2.1.0-next.0-experimental-2578ec1.tgz",
645
- "integrity": "sha512-NYO+Br5H4k7QOMGb2SIRSREfVGNiF+yfAMPDoE1LAhkFmKdu98EuX7ugzNaSpd+zA+V94mtWGKx92O1J2tyHZA==",
645
+ "version": "2.1.0-next.0-experimental-75d036a",
646
+ "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-2.1.0-next.0-experimental-75d036a.tgz",
647
+ "integrity": "sha512-H9GseXCt8yEpApQq1tpm8Q724JC6/d8q2rzxyhDZOgoG0MlMtk0OOcnQ4TkgFpED/Gg/N9XnDL2ZQ83VsDxffw==",
646
648
  "license": "SEE LICENSE IN LICENSE.txt",
647
649
  "dependencies": {
648
650
  "minimatch": "^9.0.5"
@@ -658,16 +660,16 @@
658
660
  }
659
661
  },
660
662
  "node_modules/@forge/lint": {
661
- "version": "5.11.5-next.3-experimental-2578ec1",
662
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.11.5-next.3-experimental-2578ec1.tgz",
663
- "integrity": "sha512-Ei+W9HoDnfKlmzIHbbFylWy/ICUuUZIOIEEDpYwpHoeMPxa8tiFGl/bkAYWr30JptD5m+jMSFhIrhqMzyfvm1w==",
663
+ "version": "5.11.5-next.11-experimental-75d036a",
664
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.11.5-next.11-experimental-75d036a.tgz",
665
+ "integrity": "sha512-mKY1d9QWsg8i1x/nc1EmMwq7dWhPcIQl17PyI0f9RgIgOH6N2T+t+wKBTX1ZR0HodMZm4dfdED8Guxd+e245Rw==",
664
666
  "license": "SEE LICENSE IN LICENSE.txt",
665
667
  "dependencies": {
666
668
  "@atlassian/atlassian-openapi": "^1.0.6",
667
- "@forge/cli-shared": "8.7.2-next.1-experimental-2578ec1",
668
- "@forge/csp": "5.1.1-next.0-experimental-2578ec1",
669
- "@forge/egress": "2.1.0-next.0-experimental-2578ec1",
670
- "@forge/manifest": "10.7.0-next.0-experimental-2578ec1",
669
+ "@forge/cli-shared": "8.8.0-next.9-experimental-75d036a",
670
+ "@forge/csp": "5.1.1-next.0-experimental-75d036a",
671
+ "@forge/egress": "2.1.0-next.0-experimental-75d036a",
672
+ "@forge/manifest": "10.7.0-next.5-experimental-75d036a",
671
673
  "@typescript-eslint/typescript-estree": "^5.62.0",
672
674
  "array.prototype.flatmap": "^1.3.3",
673
675
  "cross-spawn": "^7.0.6",
@@ -675,9 +677,9 @@
675
677
  }
676
678
  },
677
679
  "node_modules/@forge/manifest": {
678
- "version": "10.7.0-next.0-experimental-2578ec1",
679
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-10.7.0-next.0-experimental-2578ec1.tgz",
680
- "integrity": "sha512-98+hOSms4F/HUkJNay58okIFW3ZZ9TLdSCB9/Gw9XmnUhLYLIn1kPO0SN6O9CvvsAjhimyHrr1ocDG4ytADo2A==",
680
+ "version": "10.7.0-next.5-experimental-75d036a",
681
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-10.7.0-next.5-experimental-75d036a.tgz",
682
+ "integrity": "sha512-ejtwtfHOc/PMsBnLgibblDUKqbZthCXE29Xa/EQlNLgHrcPD62dKoY1lN/tgC+y/gFZyJjw/P/mZxozE/9pSNQ==",
681
683
  "license": "SEE LICENSE IN LICENSE.txt",
682
684
  "dependencies": {
683
685
  "@forge/i18n": "0.0.7",
@@ -692,24 +694,26 @@
692
694
  }
693
695
  },
694
696
  "node_modules/@forge/runtime": {
695
- "version": "6.0.4",
696
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-6.0.4.tgz",
697
- "integrity": "sha512-AOla35HsrwFolVorVqFRxr9hhvnCB+R7CcTH4M9nyf6RkfpzVAnmma2JhyZgjt9kNNPs08wB3H8rQpcpd+/aOw==",
697
+ "version": "6.1.0-next.0-experimental-75d036a",
698
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-6.1.0-next.0-experimental-75d036a.tgz",
699
+ "integrity": "sha512-DZKa1oEaiZrN7cwhb+30P60+m3B+suNi8Zxqg1gvF3DrnsGtJIMzBuI42hkzPC2GPXUOqbsj/9tYUWBLGAihRQ==",
698
700
  "license": "SEE LICENSE IN LICENSE.txt"
699
701
  },
700
702
  "node_modules/@forge/tunnel": {
701
- "version": "6.2.2-next.3-experimental-2578ec1",
702
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-6.2.2-next.3-experimental-2578ec1.tgz",
703
- "integrity": "sha512-LtxOlCtKPXW6eGW3gTZXyosTr2ufVKmHlQNzwoBeK68X3PdGbQdrOpCAVFW/leC5c1ca96+9sdirK0VmHbHsxA==",
703
+ "version": "6.3.0-next.11-experimental-75d036a",
704
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-6.3.0-next.11-experimental-75d036a.tgz",
705
+ "integrity": "sha512-Qpi4nuBvzwcmAop+oP2gKK1vIojui0PkiWlxOHJDJNtdZM9mN34S82oRC4F8oQWwSSbbYIQfVy446e6tEQSKWg==",
704
706
  "license": "SEE LICENSE IN LICENSE.txt",
705
707
  "dependencies": {
706
- "@forge/bundler": "6.1.9-next.3-experimental-2578ec1",
707
- "@forge/cli-shared": "8.7.2-next.1-experimental-2578ec1",
708
- "@forge/csp": "5.1.1-next.0-experimental-2578ec1",
709
- "@forge/runtime": "6.0.4",
708
+ "@forge/bundler": "6.1.9-next.11-experimental-75d036a",
709
+ "@forge/cli-shared": "8.8.0-next.9-experimental-75d036a",
710
+ "@forge/csp": "5.1.1-next.0-experimental-75d036a",
711
+ "@forge/runtime": "6.1.0-next.0-experimental-75d036a",
712
+ "@forge/util": "^2.0.0",
710
713
  "cheerio": "^1.1.0",
711
714
  "chokidar": "^3.6.0",
712
715
  "cloudflared": "^0.7.0",
716
+ "docker-compose": "^1.3.0",
713
717
  "express": "^4.18.3",
714
718
  "express-intercept": "^1.1.1",
715
719
  "http-proxy-middleware": "^2.0.9",
@@ -3212,6 +3216,28 @@
3212
3216
  "node": ">=6"
3213
3217
  }
3214
3218
  },
3219
+ "node_modules/docker-compose": {
3220
+ "version": "1.3.0",
3221
+ "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-1.3.0.tgz",
3222
+ "integrity": "sha1-baS7nVQrTM5kdKoxRqkJ7aXSNiM= sha512-7Gevk/5eGD50+eMD+XDnFnOrruFkL0kSd7jEG4cjmqweDSUhB7i0g8is/nBdVpl+Bx338SqIB2GLKm32M+Vs6g==",
3223
+ "dependencies": {
3224
+ "yaml": "^2.2.2"
3225
+ },
3226
+ "engines": {
3227
+ "node": ">= 6.0.0"
3228
+ }
3229
+ },
3230
+ "node_modules/docker-compose/node_modules/yaml": {
3231
+ "version": "2.8.1",
3232
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
3233
+ "integrity": "sha1-GHCqArYx9+gyi5P4vFdPrF1sTXk= sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
3234
+ "bin": {
3235
+ "yaml": "bin.mjs"
3236
+ },
3237
+ "engines": {
3238
+ "node": ">= 14.6"
3239
+ }
3240
+ },
3215
3241
  "node_modules/dom-converter": {
3216
3242
  "version": "0.2.0",
3217
3243
  "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -2,15 +2,19 @@ import { ConfigFile, TunnelCommandOptions } from '@forge/cli-shared';
2
2
  import { TunnelService } from '../../service/tunnel-service';
3
3
  import { TunnelView } from '../view/tunnel-view';
4
4
  import { CachedConfigService } from '../../service/cached-config-service';
5
+ import { ContainerCommand } from '../../containers';
5
6
  import { ListEnvironmentClient } from '../../environment/list-environment';
6
7
  export declare class TunnelController {
7
8
  private readonly nodeTunnelService;
8
9
  private readonly tunnelView;
9
10
  private readonly configFile;
10
11
  private readonly cachedConfigService;
12
+ private readonly containerCommandService;
11
13
  private readonly environmentClient;
12
- constructor(nodeTunnelService: TunnelService, tunnelView: TunnelView, configFile: ConfigFile, cachedConfigService: CachedConfigService, environmentClient: ListEnvironmentClient);
14
+ constructor(nodeTunnelService: TunnelService, tunnelView: TunnelView, configFile: ConfigFile, cachedConfigService: CachedConfigService, containerCommandService: ContainerCommand, environmentClient: ListEnvironmentClient);
13
15
  run(tunnelOptions: TunnelCommandOptions): Promise<void>;
16
+ private startDockerComposeStack;
17
+ private processDockerAuthentication;
14
18
  private validateTunnelCommandOptions;
15
19
  private generateContainersDockerComposeFile;
16
20
  private getContainerDockerComposePath;
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,oBAAoB,EAQrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAKL,aAAa,EAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAM3E,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAJjB,iBAAiB,EAAE,aAAa,EAChC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,qBAAqB;IAG9C,GAAG,CAAC,aAAa,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;YAwBtD,4BAA4B;YA8B5B,mCAAmC;IAkCjD,OAAO,CAAC,6BAA6B;YASvB,qBAAqB;CAgCpC"}
1
+ {"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,oBAAoB,EAQrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAOL,aAAa,EAGd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAM3E,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBALjB,iBAAiB,EAAE,aAAa,EAChC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,uBAAuB,EAAE,gBAAgB,EACzC,iBAAiB,EAAE,qBAAqB;IAG9C,GAAG,CAAC,aAAa,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;YA+CtD,uBAAuB;YA6BvB,2BAA2B;YAa3B,4BAA4B;YA8B5B,mCAAmC;IAgDjD,OAAO,CAAC,6BAA6B;YASvB,qBAAqB;CAgDpC"}
@@ -4,6 +4,7 @@ exports.TunnelController = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cli_shared_1 = require("@forge/cli-shared");
6
6
  const tunnel_service_1 = require("../../service/tunnel-service");
7
+ const docker_compose_1 = require("docker-compose");
7
8
  const yaml = tslib_1.__importStar(require("yaml"));
8
9
  const fs = tslib_1.__importStar(require("fs"));
9
10
  const path = tslib_1.__importStar(require("path"));
@@ -12,12 +13,14 @@ class TunnelController {
12
13
  tunnelView;
13
14
  configFile;
14
15
  cachedConfigService;
16
+ containerCommandService;
15
17
  environmentClient;
16
- constructor(nodeTunnelService, tunnelView, configFile, cachedConfigService, environmentClient) {
18
+ constructor(nodeTunnelService, tunnelView, configFile, cachedConfigService, containerCommandService, environmentClient) {
17
19
  this.nodeTunnelService = nodeTunnelService;
18
20
  this.tunnelView = tunnelView;
19
21
  this.configFile = configFile;
20
22
  this.cachedConfigService = cachedConfigService;
23
+ this.containerCommandService = containerCommandService;
21
24
  this.environmentClient = environmentClient;
22
25
  }
23
26
  async run(tunnelOptions) {
@@ -25,8 +28,17 @@ class TunnelController {
25
28
  const envKey = tunnelOptions.environment;
26
29
  this.tunnelView.preamble(envKey);
27
30
  const { app: { id: appId }, services, modules } = await this.configFile.readConfig();
28
- if (services) {
29
- await this.generateContainersDockerComposeFile(services, appId, envKey);
31
+ const serviceWithTunnelConfigExists = services?.some((service) => service.containers?.some((container) => {
32
+ return !!container.tunnel;
33
+ }));
34
+ if (services && serviceWithTunnelConfigExists) {
35
+ const childProcess = await this.containerCommandService.authenticateDocker();
36
+ await this.processDockerAuthentication(childProcess);
37
+ const dockerComposeFilePaths = await this.generateContainersDockerComposeFile(services, appId, envKey);
38
+ options.containersDockerComposeFiles = dockerComposeFilePaths;
39
+ for (const [serviceKey, filePath] of Object.entries(dockerComposeFilePaths)) {
40
+ await this.startDockerComposeStack(filePath, serviceKey);
41
+ }
30
42
  }
31
43
  if (modules) {
32
44
  const uiKit1Modules = (0, cli_shared_1.findUIKit1Modules)(modules);
@@ -36,6 +48,42 @@ class TunnelController {
36
48
  }
37
49
  return await this.nodeTunnelService.run(options);
38
50
  }
51
+ async startDockerComposeStack(dockerComposeFilePath, serviceKey) {
52
+ try {
53
+ await (0, docker_compose_1.pullOne)('proxy-sidecar', {
54
+ cwd: path.dirname(dockerComposeFilePath),
55
+ log: true,
56
+ config: dockerComposeFilePath
57
+ });
58
+ }
59
+ catch (err) {
60
+ throw new tunnel_service_1.DockerUnableToPullProxySidecarImage(err);
61
+ }
62
+ try {
63
+ await (0, docker_compose_1.upAll)({
64
+ cwd: path.dirname(dockerComposeFilePath),
65
+ log: true,
66
+ config: dockerComposeFilePath,
67
+ composeOptions: [`-p${serviceKey}`]
68
+ });
69
+ }
70
+ catch (err) {
71
+ throw new tunnel_service_1.DockerUnableToStartError(err);
72
+ }
73
+ }
74
+ async processDockerAuthentication(childProcess) {
75
+ await new Promise((resolve, reject) => {
76
+ childProcess.on('close', (code) => {
77
+ if (code === 0) {
78
+ resolve();
79
+ }
80
+ else {
81
+ reject(new tunnel_service_1.DockerAuthenticationError(code?.toString() || 'unknown'));
82
+ }
83
+ });
84
+ childProcess.on('error', reject);
85
+ });
86
+ }
39
87
  async validateTunnelCommandOptions(tunnelOptions) {
40
88
  const assistantName = this.cachedConfigService.getAssistantName();
41
89
  const options = {
@@ -62,7 +110,7 @@ class TunnelController {
62
110
  return options;
63
111
  }
64
112
  async generateContainersDockerComposeFile(services, appId, envKey) {
65
- const filesGenerated = [];
113
+ const filesGenerated = {};
66
114
  for (const service of services) {
67
115
  const { key: serviceKey, containers } = service;
68
116
  const containersWithTunnelConfig = containers.filter((container) => !!container.tunnel);
@@ -71,15 +119,27 @@ class TunnelController {
71
119
  if (!port || port < 1024 || port > 49152) {
72
120
  throw new tunnel_service_1.InvalidContainerServicePort(serviceKey);
73
121
  }
74
- const containerConfig = Object.fromEntries(containersWithTunnelConfig.map((container) => [container.key, container.tunnel?.docker]));
122
+ const containerConfig = Object.fromEntries(containersWithTunnelConfig.map((container) => {
123
+ const config = {
124
+ container_name: container.key,
125
+ ...container.tunnel?.docker
126
+ };
127
+ const envArray = container?.tunnel?.docker.environment ?? [];
128
+ const filteredEnvArray = envArray.filter((envVar) => !envVar.startsWith('FORGE_EGRESS_PROXY_URL='));
129
+ filteredEnvArray.push('FORGE_EGRESS_PROXY_URL=http://proxy-sidecar:7072');
130
+ config.environment = filteredEnvArray;
131
+ return [container.key, config];
132
+ }));
75
133
  const dockerComposeConfig = {
76
- ...containerConfig,
77
- ...(await this.getProxySidecarConfig(serviceKey, port, appId, envKey))
134
+ services: {
135
+ ...containerConfig,
136
+ ...(await this.getProxySidecarConfig(serviceKey, Object.keys(containerConfig), port, appId, envKey))
137
+ }
78
138
  };
79
139
  const yamlString = yaml.stringify(dockerComposeConfig);
80
140
  const filePath = this.getContainerDockerComposePath(serviceKey);
81
141
  fs.writeFileSync(filePath, yamlString);
82
- filesGenerated.push(filePath);
142
+ filesGenerated[serviceKey] = filePath;
83
143
  }
84
144
  }
85
145
  return filesGenerated;
@@ -91,28 +151,38 @@ class TunnelController {
91
151
  }
92
152
  return path.join(hiddenDir, `docker-compose-${serviceKey}.yml`);
93
153
  }
94
- async getProxySidecarConfig(serviceKey, port, appId, envKey = cli_shared_1.DEFAULT_ENVIRONMENT_OPTION) {
95
- const FOP_BASE_URL = 'https://forge-outbound-proxy.services.atlassian.com';
96
- const JWKS_URL = 'https://forge.cdn.prod.atlassian-dev.net/.well-known/jwks.json';
154
+ async getProxySidecarConfig(serviceKey, containerKeys, port, appId, envKey = cli_shared_1.DEFAULT_ENVIRONMENT_OPTION) {
155
+ let fopBaseUrl = 'https://forge-outbound-proxy.services.atlassian.com';
156
+ let jwksUrl = 'https://forge.cdn.prod.atlassian-dev.net/.well-known/jwks.json';
157
+ let proxySidecarImage = 'forge-ecr.services.atlassian.com/forge-platform/proxy-sidecar:latest';
158
+ if (process.env.FORGE_GRAPHQL_GATEWAY?.startsWith('https://api-private.stg.atlassian.com/graphql')) {
159
+ fopBaseUrl = 'https://forge-outbound-proxy.stg.services.atlassian.com';
160
+ jwksUrl = 'https://forge.cdn.stg.atlassian-dev.net/.well-known/jwks.json';
161
+ proxySidecarImage = 'forge-ecr.stg.services.atlassian.com/forge-platform/proxy-sidecar:latest';
162
+ }
97
163
  const appEnvironments = await this.environmentClient.listEnvironment({ appId });
98
164
  const environmentDetails = appEnvironments.filter((environment) => environment.key === envKey);
99
165
  if (environmentDetails.length < 1) {
100
166
  throw new tunnel_service_1.EnvironmentIsNotDefined(envKey);
101
167
  }
168
+ let appIdShort = appId;
169
+ if (appId.startsWith('ari:cloud:ecosystem::app/')) {
170
+ appIdShort = appId.split('/')[1];
171
+ }
102
172
  return {
103
173
  'proxy-sidecar': {
104
- image: 'forge-ecr.services.atlassian.com/forge-platform/proxy-sidecar:latest',
105
- container_name: 'containers-proxy-sidecar',
174
+ image: proxySidecarImage,
175
+ container_name: `proxy-sidecar-${serviceKey}`,
106
176
  environment: [
107
- `SERVICE_URL=http://${serviceKey}:8080`,
108
- `FOP_BASE_URL=${FOP_BASE_URL}`,
109
- `APP_ID=ari:cloud:ecosystem::app/${appId}`,
110
- `ENV_ID=ari:cloud:ecosystem::environment/${appId}/${environmentDetails[0].id}`,
111
- `JWKS_URL=${JWKS_URL}`,
177
+ `SERVICE_URL=http://${containerKeys[0]}:8080`,
178
+ `FOP_BASE_URL=${fopBaseUrl}`,
179
+ `APP_ID=ari:cloud:ecosystem::app/${appIdShort}`,
180
+ `ENV_ID=ari:cloud:ecosystem::environment/${appIdShort}/${environmentDetails[0].id}`,
181
+ `JWKS_URL=${jwksUrl}`,
112
182
  `IS_LOCAL_DEV=true`
113
183
  ],
114
184
  ports: [`${port}:${cli_shared_1.DEFAULT_PROXY_INGRESS_PORT}`],
115
- depends_on: [serviceKey]
185
+ depends_on: containerKeys
116
186
  }
117
187
  };
118
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-controller.js","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel-controller.js","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"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"}