|
1 | 1 | # Implementation Plan |
2 | 2 |
|
3 | | -- [ ] 1. Add IdeArch and IdeType support to CDK Ide construct |
4 | | - - [ ] 1.1 Create IdeArch enum in Ide.java |
| 3 | +- [x] 1. Add IdeArch and IdeType support to CDK Ide construct |
| 4 | + - [x] 1.1 Create IdeArch enum in Ide.java |
5 | 5 | - Add enum with ARM64 and X86_64 values |
6 | 6 | - Include helper methods for AWS and uname values |
7 | 7 | - _Requirements: 1.1_ |
8 | | - - [ ] 1.2 Create IdeType enum in Ide.java |
| 8 | + - [x] 1.2 Create IdeType enum in Ide.java |
9 | 9 | - Add enum with CODE_EDITOR and VSCODE values |
10 | 10 | - Include scriptName helper method |
11 | 11 | - _Requirements: 3.1_ |
12 | | - - [ ] 1.3 Add ideArch and ideType properties to IdeProps |
| 12 | + - [x] 1.3 Add ideArch and ideType properties to IdeProps |
13 | 13 | - Add ideArch field with ARM64 default |
14 | 14 | - Add ideType field with CODE_EDITOR default |
15 | 15 | - Create static instance type lists for each architecture |
|
18 | 18 | - Add builder methods for ideArch and ideType |
19 | 19 | - Comment out old instance type list for reference |
20 | 20 | - _Requirements: 1.2, 1.3, 1.5, 7.1, 7.2_ |
21 | | - - [ ] 1.4 Update UserData to export ARCH and IDE_TYPE |
| 21 | + - [x] 1.4 Update UserData to export ARCH and IDE_TYPE |
22 | 22 | - Modify userdata.sh template to include ARCH and IDE_TYPE exports |
23 | 23 | - Pass ideArch and ideType values from CDK to UserData |
24 | 24 | - _Requirements: 1.4, 2.1_ |
25 | | - - [ ] 1.5 Write property test for ideArch → instance types mapping |
| 25 | + - [x] 1.5 Write property test for ideArch → instance types mapping |
26 | 26 | - **Property 1: Architecture determines instance types** |
27 | 27 | - **Validates: Requirements 1.2, 1.3, 7.1, 7.2** |
28 | 28 |
|
29 | | -- [ ] 2. Add architecture detection to base.sh |
30 | | - - [ ] 2.1 Add architecture detection and normalization |
| 29 | +- [x] 2. Add architecture detection to base.sh |
| 30 | + - [x] 2.1 Add architecture detection and normalization |
31 | 31 | - Read ARCH from environment or detect via uname |
32 | 32 | - Create ARCH_K8S, ARCH_SAM, ARCH_GENERIC, ARCH_YQ variables |
33 | 33 | - _Requirements: 2.1_ |
34 | | - - [ ] 2.2 Update kubectl download URL |
| 34 | + - [x] 2.2 Update kubectl download URL |
35 | 35 | - Use ARCH_K8S variable in download URL |
36 | 36 | - _Requirements: 2.2_ |
37 | | - - [ ] 2.3 Update SAM CLI download URL |
| 37 | + - [x] 2.3 Update SAM CLI download URL |
38 | 38 | - Use ARCH_SAM variable in download URL |
39 | 39 | - _Requirements: 2.3_ |
40 | | - - [ ] 2.4 Update eks-node-viewer download URL |
| 40 | + - [x] 2.4 Update eks-node-viewer download URL |
41 | 41 | - Use ARCH_GENERIC variable in download URL |
42 | 42 | - _Requirements: 2.4_ |
43 | | - - [ ] 2.5 Update SOCI snapshotter download URL |
| 43 | + - [x] 2.5 Update SOCI snapshotter download URL |
44 | 44 | - Use ARCH_K8S variable (amd64/arm64) in download URL |
45 | 45 | - _Requirements: 2.5_ |
46 | | - - [ ] 2.6 Update yq download URL |
| 46 | + - [x] 2.6 Update yq download URL |
47 | 47 | - Use ARCH_YQ variable in download URL |
48 | 48 | - _Requirements: 2.6_ |
49 | | - - [ ] 2.7 Update Java path for ARM64 |
| 49 | + - [x] 2.7 Update Java path for ARM64 |
50 | 50 | - Handle different Java paths for aarch64 vs x86_64 |
51 | 51 | - _Requirements: 2.1_ |
52 | 52 |
|
53 | | -- [ ] 3. Checkpoint - Verify architecture detection works |
| 53 | +- [x] 3. Checkpoint - Verify architecture detection works |
54 | 54 | - Ensure all tests pass, ask the user if questions arise. |
55 | 55 |
|
56 | | -- [ ] 4. Create ide-settings.sh with common IDE configuration |
57 | | - - [ ] 4.1 Create ide-settings.sh file |
58 | | - - Define EXTENSIONS variable with full list |
| 56 | +- [x] 4. Create ide-settings.sh with common IDE configuration |
| 57 | + - [x] 4.1 Create ide-settings.sh file |
| 58 | + - Define EXTENSIONS variable with extensions to install |
| 59 | + - Define EXTENSIONS_UNINSTALL variable with pre-installed extensions to remove |
59 | 60 | - Define DEFAULT_WORKSPACE variable |
60 | | - - _Requirements: 4.1-4.6_ |
61 | | - - [ ] 4.2 Add install_ide_extensions function |
| 61 | + - _Requirements: 4.1-4.4_ |
| 62 | + - [x] 4.2 Add uninstall_ide_extensions function |
| 63 | + - Accept binary command and user as parameters |
| 64 | + - Loop through EXTENSIONS_UNINSTALL and remove each |
| 65 | + - _Requirements: 4.5, 4.6_ |
| 66 | + - [x] 4.3 Add install_ide_extensions function |
62 | 67 | - Accept binary command and user as parameters |
| 68 | + - First call uninstall_ide_extensions to remove unwanted extensions |
63 | 69 | - Loop through extensions with retry logic |
64 | | - - _Requirements: 4.7, 8.1, 8.2, 8.3_ |
65 | | - - [ ] 4.3 Add configure_default_workspace function |
| 70 | + - _Requirements: 4.4, 8.1, 8.2, 8.3, 8.4_ |
| 71 | + - [x] 4.4 Add configure_default_workspace function |
66 | 72 | - Accept coder.json path and user as parameters |
67 | 73 | - Create workspace config if not exists |
68 | 74 | - _Requirements: 4.1_ |
69 | 75 |
|
70 | | -- [ ] 5. Create code-editor.sh for AWS Code Editor |
71 | | - - [ ] 5.1 Add code-editor installation function |
| 76 | +- [x] 5. Create code-editor.sh for AWS Code Editor |
| 77 | + - [x] 5.1 Add code-editor installation function |
72 | 78 | - Download manifest from code-editor.amazonaws.com |
73 | 79 | - Support ARM64 and x64 architectures |
74 | 80 | - _Requirements: 3.1_ |
75 | | - - [ ] 5.2 Add checksum verification |
| 81 | + - [x] 5.2 Add checksum verification |
76 | 82 | - Verify SHA256 checksum against manifest |
77 | 83 | - Fail with clear error on mismatch |
78 | 84 | - _Requirements: 3.2_ |
79 | | - - [ ] 5.3 Add installation to user's .local directory |
| 85 | + - [x] 5.3 Add installation to user's .local directory |
80 | 86 | - Extract to ~/.local/lib/code-editor-VERSION/ |
81 | 87 | - Create symlink in ~/.local/bin/ |
82 | 88 | - _Requirements: 3.3_ |
83 | | - - [ ] 5.4 Add systemd service configuration |
| 89 | + - [x] 5.4 Add systemd service configuration |
84 | 90 | - Create code-editor@.service unit file |
85 | 91 | - Configure for port 8889 |
86 | 92 | - Accept server license terms |
87 | 93 | - _Requirements: 3.4, 3.5_ |
88 | | - - [ ] 5.5 Add token authentication setup |
| 94 | + - [x] 5.5 Add token authentication setup |
89 | 95 | - Create ~/.code-editor-server/data/token file |
90 | 96 | - Write IDE_PASSWORD to token file |
91 | 97 | - _Requirements: 6.1_ |
92 | | - - [ ] 5.6 Add Caddy proxy configuration |
| 98 | + - [x] 5.6 Add Caddy proxy configuration |
93 | 99 | - Configure Caddy to proxy port 8889 |
94 | 100 | - Same config as vscode.sh |
95 | 101 | - _Requirements: 3.6_ |
96 | | - - [ ] 5.7 Source ide-settings.sh and call shared functions |
| 102 | + - [x] 5.7 Source ide-settings.sh and call shared functions |
97 | 103 | - Call install_ide_extensions with code-editor-server |
98 | 104 | - Call configure_default_workspace |
99 | 105 | - _Requirements: 4.1-4.7_ |
100 | 106 |
|
101 | | -- [ ] 6. Update vscode.sh to use shared settings |
102 | | - - [ ] 6.1 Source ide-settings.sh |
| 107 | +- [x] 6. Update vscode.sh to use shared settings |
| 108 | + - [x] 6.1 Source ide-settings.sh |
103 | 109 | - Remove inline EXTENSIONS variable |
104 | 110 | - Source ide-settings.sh at top of file |
105 | 111 | - _Requirements: 4.1-4.6_ |
106 | | - - [ ] 6.2 Use install_ide_extensions function |
| 112 | + - [x] 6.2 Use install_ide_extensions function |
107 | 113 | - Replace inline extension loop with function call |
108 | 114 | - Pass "code-server" and "ec2-user" |
109 | 115 | - _Requirements: 4.7_ |
110 | | - - [ ] 6.3 Use configure_default_workspace function |
| 116 | + - [x] 6.3 Use configure_default_workspace function |
111 | 117 | - Replace inline coder.json creation with function call |
112 | 118 | - _Requirements: 4.1_ |
113 | 119 |
|
114 | | -- [ ] 7. Update bootstrap.sh for IDE selection |
115 | | - - [ ] 7.1 Read IDE_TYPE from environment |
| 120 | +- [x] 7. Update bootstrap.sh for IDE selection |
| 121 | + - [x] 7.1 Read IDE_TYPE from environment |
116 | 122 | - Use IDE_TYPE from UserData (set by CDK) |
117 | 123 | - Default to "code-editor" if not set |
118 | 124 | - _Requirements: 3.1_ |
119 | | - - [ ] 7.2 Add dynamic code alias to workshop.sh |
| 125 | + - [x] 7.2 Add dynamic code alias to workshop.sh |
120 | 126 | - Set alias based on IDE_TYPE |
121 | 127 | - code-editor: /home/ec2-user/.local/bin/code-editor-server |
122 | 128 | - vscode: code-server |
123 | 129 | - _Requirements: 3.4_ |
124 | | - - [ ] 7.3 Update IDE setup call |
| 130 | + - [x] 7.3 Update IDE setup call |
125 | 131 | - Change from hardcoded vscode.sh to ${IDE_TYPE}.sh |
126 | 132 | - _Requirements: 3.1_ |
127 | 133 |
|
128 | | -- [ ] 8. Update shell.sh for both IDEs |
129 | | - - [ ] 8.1 Update .zshrc code alias |
| 134 | +- [x] 8. Update shell.sh for both IDEs |
| 135 | + - [x] 8.1 Update .zshrc code alias |
130 | 136 | - Add dynamic alias that detects installed IDE |
131 | 137 | - Check for code-editor-server first, then code-server |
132 | 138 | - _Requirements: 3.4_ |
133 | | - - [ ] 8.2 Update settings.json zsh configuration |
| 139 | + - [x] 8.2 Update settings.json zsh configuration |
134 | 140 | - Check both code-server and code-editor settings.json paths |
135 | 141 | - Update whichever exists |
136 | 142 | - _Requirements: 3.4_ |
137 | 143 |
|
138 | | -- [ ] 9. Add Kiro CLI installation to base.sh |
139 | | - - [ ] 9.1 Add install_kiro_cli function |
| 144 | +- [x] 9. Add Kiro CLI installation to base.sh |
| 145 | + - [x] 9.1 Add install_kiro_cli function |
140 | 146 | - Download and run Kiro CLI installer |
141 | 147 | - Use retry_optional for resilience |
142 | 148 | - _Requirements: 5.1_ |
143 | | - - [ ] 9.2 Add version verification |
| 149 | + - [x] 9.2 Add version verification |
144 | 150 | - Check kiro-cli --version after install |
145 | 151 | - Log warning if verification fails |
146 | 152 | - _Requirements: 5.2, 5.3_ |
147 | | - - [ ] 9.3 Call install_kiro_cli in base.sh |
| 153 | + - [x] 9.3 Call install_kiro_cli in base.sh |
148 | 154 | - Add to end of base.sh before shell setup |
149 | 155 | - _Requirements: 5.1_ |
150 | 156 |
|
151 | | -- [ ] 10. Checkpoint - Test full bootstrap |
| 157 | +- [x] 10. Checkpoint - Test full bootstrap |
152 | 158 | - Ensure all tests pass, ask the user if questions arise. |
153 | 159 |
|
154 | | -- [ ] 11. Update CDK URL output for conditional token-based access |
155 | | - - [ ] 11.1 Modify Ide.java URL output based on IdeType |
| 160 | +- [x] 11. Update CDK URL output for conditional token-based access |
| 161 | + - [x] 11.1 Modify Ide.java URL output based on IdeType |
156 | 162 | - For CODE_EDITOR: Include ?folder= and ?tkn= parameters |
157 | 163 | - Format: https://domain/?folder=/home/ec2-user/environment&tkn=PASSWORD |
158 | 164 | - For VSCODE: Standard URL without token (password via login page) |
159 | 165 | - Format: https://domain/ |
160 | 166 | - _Requirements: 6.2, 6.3_ |
161 | 167 |
|
162 | | -- [ ] 12. Final Checkpoint - Verify complete setup |
| 168 | +- [x] 12. Final Checkpoint - Verify complete setup |
163 | 169 | - Ensure all tests pass, ask the user if questions arise. |
0 commit comments