nitor 1.0.0 → 1.2.0

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/CHANGELOG.md CHANGED
@@ -16,3 +16,11 @@ We are pleased to announce the first official release of **Nitor**.
16
16
  - Scriptable and extensible for automation and integration into larger workflows.
17
17
 
18
18
  For a complete list of changes and discussion, see [Issue #1](https://github.com/codebynithin/nitor/issues/1).
19
+
20
+ ## [1.1.0] - 2025-11-14
21
+
22
+ ### New Features
23
+
24
+ - Added cleanup command to delete all local branches except master/main.
25
+
26
+ - [Issue #6](https://github.com/codebynithin/nitor/issues/6)
package/README.md CHANGED
@@ -23,22 +23,38 @@ A CLI utility toolkit for automating and managing build, deploy, and status oper
23
23
  - AI text refactoring
24
24
  - Backup and restore MongoDB
25
25
  - Merge git branches
26
+ - Cleanup local git branches
26
27
 
27
28
  ## Requirements
28
29
 
29
30
  - Node.js >= 14.x
30
31
  - npm >= 6.x
31
32
  - A properly configured `.env.nu` file in your `~/Desktop` directory with required tokens and URLs:
32
- - `CSRF_TOKEN`
33
- - `COOKIE`
34
- - `ORIGIN`
35
- - `GITLAB_TOKEN`
36
- - `MR_PROMPT`
37
- - `MR_LANG`
38
- - `AI_API_KEY`
39
- - `AI_MODEL`
40
- - `BACKUP_CONFIG`
41
- - `RESTORE_CONFIG`
33
+ - `CSRF_TOKEN` - CSRF token for Gitlab (Copy from browser)
34
+ - `COOKIE` - Cookie for Gitlab (Copy from browser)
35
+ - `ORIGIN` - Origin for Gitlab website url, eg: `https://gitlab.com/`
36
+ - `GITLAB_TOKEN` - Gitlab token
37
+ - `MR_PROMPT` - Merge request prompt
38
+ - `MR_LANG` - Merge request language
39
+ - `AI_API_KEY` - AI API key
40
+ - `AI_MODEL` - AI model
41
+ - `BACKUP_CONFIG` - Backup configuration
42
+ - `RESTORE_CONFIG` - Restore configuration
43
+
44
+ ## Installation
45
+
46
+ After installing the package globally, you can enable autocomplete:
47
+
48
+ ```bash
49
+ nitor completion
50
+ ```
51
+
52
+ This will add autocomplete support to your shell. Restart your terminal or run:
53
+
54
+ ```bash
55
+ source ~/.bashrc # for bash
56
+ source ~/.zshrc # for zsh
57
+ ```
42
58
 
43
59
  ## Usage
44
60
 
@@ -48,6 +64,14 @@ You can use the CLI via the `nitor` command:
48
64
  nitor <command> [options]
49
65
  ```
50
66
 
67
+ ### Autocomplete
68
+
69
+ Once enabled, you can use Tab to autocomplete:
70
+
71
+ - Commands (build, deploy, cleanup, etc.)
72
+ - Options (-project, -components, etc.)
73
+ - Values (portal, gateway, dev, qa, etc.)
74
+
51
75
  ### Example Commands
52
76
 
53
77
  - **Build:**
@@ -86,6 +110,10 @@ nitor <command> [options]
86
110
  ```bash
87
111
  nitor merge -source <source branch> -target <target branch>
88
112
  ```
113
+ - **Cleanup:**
114
+ ```bash
115
+ nitor cleanup
116
+ ```
89
117
 
90
118
  ### Command Reference
91
119
 
@@ -101,6 +129,7 @@ nitor <command> [options]
101
129
  - `backup` : Backup specified projects
102
130
  - `restore` : Restore specified projects
103
131
  - `merge` : Merge source branch into target branch
132
+ - `cleanup` : Cleanup local git branches (checkout to master and delete all other branches)
104
133
 
105
134
  ### Options
106
135
 
@@ -0,0 +1,136 @@
1
+ # Autocomplete Setup Guide
2
+
3
+ ## Overview
4
+
5
+ Nitor supports shell autocomplete for commands, options, and values using the `omelette` library.
6
+
7
+ ## Setup
8
+
9
+ ### 1. Install Autocomplete
10
+
11
+ After installing nitor globally, run:
12
+
13
+ ```bash
14
+ nitor completion
15
+ ```
16
+
17
+ ### 2. Activate Autocomplete
18
+
19
+ Restart your terminal or source your shell configuration:
20
+
21
+ **For Bash:**
22
+
23
+ ```bash
24
+ source ~/.bashrc
25
+ ```
26
+
27
+ **For Zsh:**
28
+
29
+ ```bash
30
+ source ~/.zshrc
31
+ ```
32
+
33
+ **For Fish:**
34
+
35
+ ```bash
36
+ source ~/.config/fish/config.fish
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ Once autocomplete is enabled, press `Tab` to see suggestions:
42
+
43
+ ### Command Completion
44
+
45
+ ```bash
46
+ nitor <Tab>
47
+ # Shows: build, deploy, build-deploy, create-branch, review, refactor, backup, merge, cleanup,
48
+ # time-init, time-switch, time-add, time-update, time-delete, time-stats, time-entries,
49
+ # time-zoho, time-gitlab, time-merge, version, help
50
+ ```
51
+
52
+ ### Option Completion
53
+
54
+ ```bash
55
+ nitor build -<Tab>
56
+ # Shows: -project, -p, -components, -c, -instance, -i, -help, --h
57
+ ```
58
+
59
+ ### Value Completion
60
+
61
+ ```bash
62
+ nitor build -project <Tab>
63
+ # Shows: portal, gateway, phr, configService, healthRecords, centralAuth, mpi, phrAdminBackend, phrAdminClient, terminologyService
64
+
65
+ nitor build -instance <Tab>
66
+ # Shows: dev, qa, pilot
67
+
68
+ nitor create-branch -type <Tab>
69
+ # Shows: feat, fix
70
+ ```
71
+
72
+ ## Supported Completions
73
+
74
+ ### Commands
75
+
76
+ - `build`, `deploy`, `build-deploy`
77
+ - `create-branch`, `review`, `refactor`
78
+ - `backup`, `merge`, `cleanup`
79
+ - `time-init`, `time-switch`, `time-add`, `time-update`, `time-delete`
80
+ - `time-stats`, `time-entries`, `time-zoho`, `time-gitlab`, `time-merge`
81
+ - `version`, `help`, `completion`
82
+
83
+ ### Options
84
+
85
+ - Project names: `portal`, `gateway`, `phr`, etc.
86
+ - Components: `client`, `administration`, `provider`, `rest-api`
87
+ - Instances: `dev`, `qa`, `pilot`
88
+ - Branch types: `feat`, `fix`
89
+ - Repository names: `portalClient`, `portalBackend`, etc.
90
+
91
+ ## Troubleshooting
92
+
93
+ ### Autocomplete Not Working
94
+
95
+ 1. **Verify installation:**
96
+
97
+ ```bash
98
+ nitor completion
99
+ ```
100
+
101
+ 2. **Check shell configuration:**
102
+
103
+ - Bash: `~/.bashrc`
104
+ - Zsh: `~/.zshrc`
105
+ - Fish: `~/.config/fish/config.fish`
106
+
107
+ 3. **Reload shell:**
108
+ ```bash
109
+ exec $SHELL
110
+ ```
111
+
112
+ ### Manual Setup
113
+
114
+ If automatic setup doesn't work, add this to your shell configuration:
115
+
116
+ **Bash (~/.bashrc):**
117
+
118
+ ```bash
119
+ # nitor autocomplete
120
+ if type nitor > /dev/null 2>&1; then
121
+ eval "$(nitor --completion)"
122
+ fi
123
+ ```
124
+
125
+ **Zsh (~/.zshrc):**
126
+
127
+ ```bash
128
+ # nitor autocomplete
129
+ if type nitor > /dev/null 2>&1; then
130
+ eval "$(nitor --completion)"
131
+ fi
132
+ ```
133
+
134
+ ## Uninstall Autocomplete
135
+
136
+ To remove autocomplete, edit your shell configuration file and remove the nitor completion lines, then reload your shell.
package/docs/BACKUP.md ADDED
@@ -0,0 +1,343 @@
1
+ # Backup Command Guide
2
+
3
+ ## Overview
4
+
5
+ The `backup` command creates MongoDB database backups for specified projects and components, ensuring data safety and recovery options.
6
+
7
+ ## Usage
8
+
9
+ ### Basic Syntax
10
+
11
+ ```bash
12
+ nitor backup -project <project name> -components <component name>
13
+ ```
14
+
15
+ ### Short Form
16
+
17
+ ```bash
18
+ nitor backup -p <project name> -c <component name>
19
+ ```
20
+
21
+ ## Options
22
+
23
+ | Option | Short | Description | Required |
24
+ | -------------- | ------- | -------------- | -------- |
25
+ | `--project` | `-p` | Project name | Yes |
26
+ | `--components` | `-c` | Component name | Optional |
27
+ | `--help` | `-help` | Show help | - |
28
+
29
+ ## Examples
30
+
31
+ ### Backup Config Service
32
+
33
+ ```bash
34
+ nitor backup -p configService
35
+ ```
36
+
37
+ ### Backup Medica Central Auth
38
+
39
+ ```bash
40
+ nitor backup -project medicaCentralAuth
41
+ ```
42
+
43
+ ### Backup Medica Portal
44
+
45
+ ```bash
46
+ nitor backup -p medicaPortal
47
+ ```
48
+
49
+ ### Backup PHR System
50
+
51
+ ```bash
52
+ nitor backup -project phr
53
+ ```
54
+
55
+ ## Supported Projects
56
+
57
+ - **configService** - Configuration service database
58
+ - **medicaCentralAuth** - Medica central authentication database
59
+ - **medicaPortal** - Medica portal database
60
+ - **phr** - Personal Health Records database
61
+
62
+ ## Backup Process
63
+
64
+ The backup command will:
65
+
66
+ 1. **Connect to MongoDB**
67
+
68
+ - Establishes connection to database server
69
+ - Authenticates with credentials
70
+
71
+ 2. **Identify Databases**
72
+
73
+ - Determines which databases to backup
74
+ - Based on project and component parameters
75
+
76
+ 3. **Create Backup**
77
+
78
+ - Exports database collections
79
+ - Preserves data structure and relationships
80
+
81
+ 4. **Store Backup**
82
+
83
+ - Saves backup to designated location
84
+ - Includes timestamp in filename
85
+
86
+ 5. **Verify Backup**
87
+ - Confirms backup completion
88
+ - Reports backup status
89
+
90
+ ## Backup Location
91
+
92
+ Backups are typically stored in:
93
+
94
+ - Project-specific backup directory
95
+ - Timestamped folders for version control
96
+ - Compressed format for space efficiency
97
+
98
+ ## Backup Naming Convention
99
+
100
+ Backups follow this pattern:
101
+
102
+ ```
103
+ <project>_<component>_<timestamp>.backup
104
+ ```
105
+
106
+ **Examples:**
107
+
108
+ - `configService_20241115_171030.backup`
109
+ - `medicaPortal_20241115_171030.backup`
110
+ - `phr_20241115_171030.backup`
111
+
112
+ ## When to Backup
113
+
114
+ ### Regular Backups
115
+
116
+ - **Daily** - For production databases
117
+ - **Before Deployments** - Prior to major changes
118
+ - **Before Migrations** - Before schema updates
119
+ - **Weekly** - For development databases
120
+
121
+ ### Critical Moments
122
+
123
+ - Before major feature releases
124
+ - Before data migrations
125
+ - Before system upgrades
126
+ - After significant data changes
127
+
128
+ ## Best Practices
129
+
130
+ ### Backup Strategy
131
+
132
+ 1. **Schedule Regular Backups**
133
+
134
+ - Automate daily backups
135
+ - Use cron jobs or schedulers
136
+
137
+ 2. **Test Backups**
138
+
139
+ - Regularly verify backup integrity
140
+ - Practice restoration procedures
141
+
142
+ 3. **Multiple Locations**
143
+
144
+ - Store backups in multiple locations
145
+ - Use cloud storage for redundancy
146
+
147
+ 4. **Retention Policy**
148
+ - Keep daily backups for 7 days
149
+ - Keep weekly backups for 1 month
150
+ - Keep monthly backups for 1 year
151
+
152
+ ### Security
153
+
154
+ 1. **Encrypt Backups**
155
+
156
+ - Use encryption for sensitive data
157
+ - Secure backup storage locations
158
+
159
+ 2. **Access Control**
160
+
161
+ - Limit backup access to authorized users
162
+ - Use strong authentication
163
+
164
+ 3. **Audit Trail**
165
+ - Log backup operations
166
+ - Track who created backups
167
+
168
+ ## Restoration
169
+
170
+ To restore from a backup:
171
+
172
+ 1. **Locate Backup File**
173
+
174
+ ```bash
175
+ ls -la /path/to/backups/
176
+ ```
177
+
178
+ 2. **Verify Backup Integrity**
179
+
180
+ - Check file size
181
+ - Verify timestamp
182
+
183
+ 3. **Restore Database**
184
+
185
+ ```bash
186
+ mongorestore --archive=<backup-file>
187
+ ```
188
+
189
+ 4. **Verify Restoration**
190
+ - Check data integrity
191
+ - Test application functionality
192
+
193
+ ## Troubleshooting
194
+
195
+ ### Backup Fails to Start
196
+
197
+ 1. **Check MongoDB Connection:**
198
+
199
+ - Verify MongoDB is running
200
+ - Test connection credentials
201
+ - Check network connectivity
202
+
203
+ 2. **Verify Permissions:**
204
+
205
+ - Ensure user has backup privileges
206
+ - Check file system permissions
207
+
208
+ 3. **Check Disk Space:**
209
+ ```bash
210
+ df -h
211
+ ```
212
+ - Ensure sufficient space for backup
213
+
214
+ ### Incomplete Backup
215
+
216
+ If backup completes but seems incomplete:
217
+
218
+ 1. **Check Logs:**
219
+
220
+ - Review backup logs for errors
221
+ - Look for timeout issues
222
+
223
+ 2. **Verify Collections:**
224
+
225
+ - List all collections
226
+ - Compare with backup contents
227
+
228
+ 3. **Retry Backup:**
229
+ - Run backup again
230
+ - Use verbose mode for details
231
+
232
+ ### Connection Errors
233
+
234
+ If you encounter connection errors:
235
+
236
+ 1. **Verify MongoDB Status:**
237
+
238
+ ```bash
239
+ systemctl status mongod
240
+ ```
241
+
242
+ 2. **Check Credentials:**
243
+
244
+ - Verify username and password
245
+ - Ensure user has proper roles
246
+
247
+ 3. **Test Connection:**
248
+ ```bash
249
+ mongo --host <host> --port <port>
250
+ ```
251
+
252
+ ## Configuration
253
+
254
+ The backup command requires:
255
+
256
+ 1. **MongoDB Connection Details:**
257
+
258
+ - Host and port
259
+ - Database name
260
+ - Authentication credentials
261
+
262
+ 2. **Backup Storage:**
263
+
264
+ - Backup directory path
265
+ - Sufficient disk space
266
+ - Write permissions
267
+
268
+ 3. **Environment Variables:**
269
+ - MongoDB connection string
270
+ - Backup configuration
271
+
272
+ ## Automation
273
+
274
+ ### Cron Job Example
275
+
276
+ ```bash
277
+ # Daily backup at 2 AM
278
+ 0 2 * * * nitor backup -p configService
279
+
280
+ # Weekly backup on Sunday at 3 AM
281
+ 0 3 * * 0 nitor backup -p medicaPortal
282
+
283
+ # Monthly backup on 1st at 4 AM
284
+ 0 4 1 * * nitor backup -p phr
285
+ ```
286
+
287
+ ### Backup Script
288
+
289
+ ```bash
290
+ #!/bin/bash
291
+ # Backup all projects
292
+
293
+ projects=("configService" "medicaCentralAuth" "medicaPortal" "phr")
294
+
295
+ for project in "${projects[@]}"; do
296
+ echo "Backing up $project..."
297
+ nitor backup -p "$project"
298
+ done
299
+
300
+ echo "All backups completed!"
301
+ ```
302
+
303
+ ## Monitoring
304
+
305
+ ### Backup Verification
306
+
307
+ 1. **Check Backup Size:**
308
+
309
+ ```bash
310
+ ls -lh /path/to/backups/
311
+ ```
312
+
313
+ 2. **Verify Timestamp:**
314
+
315
+ - Ensure backup is recent
316
+ - Check for stale backups
317
+
318
+ 3. **Test Restoration:**
319
+ - Periodically test restore process
320
+ - Verify data integrity
321
+
322
+ ### Alerts
323
+
324
+ Set up alerts for:
325
+
326
+ - Backup failures
327
+ - Disk space issues
328
+ - Connection problems
329
+ - Unusual backup sizes
330
+
331
+ ## Getting Help
332
+
333
+ To see all available options:
334
+
335
+ ```bash
336
+ nitor backup -help
337
+ ```
338
+
339
+ ## Related Commands
340
+
341
+ - `nitor build` - Build before backing up
342
+ - `nitor deploy` - Deploy after backup verification
343
+ - MongoDB tools for manual backup/restore
package/docs/BUILD.md ADDED
@@ -0,0 +1,120 @@
1
+ # Build Command Guide
2
+
3
+ ## Overview
4
+
5
+ The `build` command compiles and builds specified components of your projects. It supports building multiple projects, components, and instances.
6
+
7
+ ## Usage
8
+
9
+ ### Basic Syntax
10
+
11
+ ```bash
12
+ nitor build -project <project name> -components <component name> -instance <instance name>
13
+ ```
14
+
15
+ ### Short Form
16
+
17
+ ```bash
18
+ nitor build -p <project name> -c <component name> -i <instance name>
19
+ ```
20
+
21
+ ## Options
22
+
23
+ | Option | Short | Description | Values |
24
+ | -------------- | ------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
25
+ | `--project` | `-p` | Project name | `portal`, `gateway`, `phr`, `configService`, `healthRecords`, `centralAuth`, `mpi`, `phrAdminBackend`, `phrAdminClient`, `terminologyService` |
26
+ | `--components` | `-c` | Component name | `client`, `administration`, `provider`, `rest-api` |
27
+ | `--instance` | `-i` | Instance name | `dev`, `qa`, `pilot` |
28
+ | `--help` | `-help` | Show help | - |
29
+
30
+ ## Examples
31
+
32
+ ### Build Portal Client for Dev
33
+
34
+ ```bash
35
+ nitor build -p portal -c client -i dev
36
+ ```
37
+
38
+ ### Build Gateway Backend for QA
39
+
40
+ ```bash
41
+ nitor build -project gateway -components rest-api -instance qa
42
+ ```
43
+
44
+ ### Build Multiple Components
45
+
46
+ ```bash
47
+ nitor build -p phr -c "client administration" -i pilot
48
+ ```
49
+
50
+ ## Supported Projects
51
+
52
+ - **portal** - Portal application
53
+ - **gateway** - Gateway service
54
+ - **phr** - Personal Health Records
55
+ - **configService** - Configuration service
56
+ - **healthRecords** - Health records service
57
+ - **centralAuth** - Central authentication service
58
+ - **mpi** - Master Patient Index
59
+ - **phrAdminBackend** - PHR admin backend
60
+ - **phrAdminClient** - PHR admin client
61
+ - **terminologyService** - Terminology service
62
+
63
+ ## Supported Components
64
+
65
+ - **client** - Frontend client application
66
+ - **administration** - Administration panel
67
+ - **provider** - Provider interface
68
+ - **rest-api** - REST API backend
69
+
70
+ ## Supported Instances
71
+
72
+ - **dev** - Development environment
73
+ - **qa** - Quality assurance environment
74
+ - **pilot** - Pilot/staging environment
75
+
76
+ ## Build Process
77
+
78
+ The build command will:
79
+
80
+ 1. Validate project, component, and instance parameters
81
+ 2. Trigger the build process for specified components
82
+ 3. Monitor build status
83
+ 4. Report build results
84
+
85
+ ## Troubleshooting
86
+
87
+ ### Build Fails
88
+
89
+ 1. **Check parameters:**
90
+
91
+ ```bash
92
+ nitor build -help
93
+ ```
94
+
95
+ 2. **Verify project exists:**
96
+ Ensure the project name is correct and exists in the supported projects list
97
+
98
+ 3. **Check build logs:**
99
+ Review the build output for specific error messages
100
+
101
+ ### Invalid Component
102
+
103
+ If you receive an error about invalid components, verify that:
104
+
105
+ - The component name is spelled correctly
106
+ - The component exists for the specified project
107
+ - You're using the correct instance
108
+
109
+ ## Getting Help
110
+
111
+ To see all available options:
112
+
113
+ ```bash
114
+ nitor build -help
115
+ ```
116
+
117
+ ## Related Commands
118
+
119
+ - `nitor deploy` - Deploy built components
120
+ - `nitor build-deploy` - Build and deploy in one command