nitor 1.1.0 → 1.2.1

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
@@ -23,4 +23,10 @@ For a complete list of changes and discussion, see [Issue #1](https://github.com
23
23
 
24
24
  - Added cleanup command to delete all local branches except master/main.
25
25
 
26
- - [Issue #6](https://github.com/codebynithin/nitor/issues/6)
26
+ ## [1.2.1] - 2025-11-19
27
+
28
+ ### New Features
29
+
30
+ - Added time entry commands.
31
+
32
+ - [Issue #5](https://github.com/codebynithin/nitor/issues/5)
package/README.md CHANGED
@@ -24,6 +24,8 @@ A CLI utility toolkit for automating and managing build, deploy, and status oper
24
24
  - Backup and restore MongoDB
25
25
  - Merge git branches
26
26
  - Cleanup local git branches
27
+ - Time entry management with Zoho integration
28
+ - GitLab activity tracking
27
29
 
28
30
  ## Requirements
29
31
 
@@ -40,6 +42,34 @@ A CLI utility toolkit for automating and managing build, deploy, and status oper
40
42
  - `AI_MODEL` - AI model
41
43
  - `BACKUP_CONFIG` - Backup configuration
42
44
  - `RESTORE_CONFIG` - Restore configuration
45
+ - `ZOHO_COOKIE` - Zoho cookie for authentication
46
+ - `ZOHO_CUSTOMVIEW_ID` - Zoho custom view ID
47
+ - `ZOHO_DEFAULt_PROJECT_ID` - Default Zoho project ID
48
+ - `ZOHO_PORTAL_ID` - Zoho portal ID
49
+ - `ZOHO_PROJECTS` - Zoho projects configuration
50
+ - `ZOHO_SESSION_ID` - Zoho session ID
51
+ - `ZOHO_SOURCE` - Zoho source
52
+ - `ZOHO_TEAM` - Zoho team ID
53
+ - `ZOHO_TOKEN` - Zoho CSRF token
54
+ - `ZOHO_URI` - Zoho API URL
55
+ - `ZOHO_USERID` - Zoho user ID
56
+ - `GITLAB_API_URL` - GitLab API URL
57
+ - `GITLAB_PROJECT_ID` - GitLab project ID
58
+
59
+ ## Installation
60
+
61
+ After installing the package globally, you can enable autocomplete:
62
+
63
+ ```bash
64
+ nitor completion
65
+ ```
66
+
67
+ This will add autocomplete support to your shell. Restart your terminal or run:
68
+
69
+ ```bash
70
+ source ~/.bashrc # for bash
71
+ source ~/.zshrc # for zsh
72
+ ```
43
73
 
44
74
  ## Usage
45
75
 
@@ -49,6 +79,14 @@ You can use the CLI via the `nitor` command:
49
79
  nitor <command> [options]
50
80
  ```
51
81
 
82
+ ### Autocomplete
83
+
84
+ Once enabled, you can use Tab to autocomplete:
85
+
86
+ - Commands (build, deploy, cleanup, etc.)
87
+ - Options (-project, -components, etc.)
88
+ - Values (portal, gateway, dev, qa, etc.)
89
+
52
90
  ### Example Commands
53
91
 
54
92
  - **Build:**
@@ -91,6 +129,34 @@ nitor <command> [options]
91
129
  ```bash
92
130
  nitor cleanup
93
131
  ```
132
+ - **Time Entry - Initialize:**
133
+ ```bash
134
+ nitor time-init
135
+ ```
136
+ - **Time Entry - Add:**
137
+ ```bash
138
+ nitor time-add -project <project name> -sprint <sprint name> -task <task id> -date <YYYY-MM-DD> -work <work description> -duration <minutes> -remarks <remarks>
139
+ ```
140
+ - **Time Entry - Update:**
141
+ ```bash
142
+ nitor time-update -id <entry id> -task <task id> -work <work description> -duration <minutes> -remarks <remarks> -date <YYYY-MM-DD>
143
+ ```
144
+ - **Time Entry - Delete:**
145
+ ```bash
146
+ nitor time-delete -id <entry id> -date <YYYY-MM-DD>
147
+ ```
148
+ - **Time Entry - View Entries:**
149
+ ```bash
150
+ nitor time-entries -from <YYYY-MM-DD> -to <YYYY-MM-DD>
151
+ ```
152
+ - **Time Entry - View Stats:**
153
+ ```bash
154
+ nitor time-stats -from <YYYY-MM-DD> -to <YYYY-MM-DD>
155
+ ```
156
+ - **Time Entry - Sync to Zoho:**
157
+ ```bash
158
+ nitor time-zoho
159
+ ```
94
160
 
95
161
  ### Command Reference
96
162
 
@@ -107,6 +173,13 @@ nitor <command> [options]
107
173
  - `restore` : Restore specified projects
108
174
  - `merge` : Merge source branch into target branch
109
175
  - `cleanup` : Cleanup local git branches (checkout to master and delete all other branches)
176
+ - `time-init` : Initialize time entry configuration
177
+ - `time-add` : Add time entry with support for multiple tags
178
+ - `time-update` : Update existing time entry
179
+ - `time-delete` : Delete time entry
180
+ - `time-entries` : View time entries by date range
181
+ - `time-stats` : View daily statistics of time entries
182
+ - `time-zoho` : Sync time entries to Zoho
110
183
 
111
184
  ### Options
112
185
 
@@ -122,6 +195,19 @@ nitor <command> [options]
122
195
  - `-source` or `-so` : Source branch name
123
196
  - `-target` or `-ta` : Target branch name
124
197
 
198
+ #### Time Entry Options
199
+
200
+ - `-project` or `-p` : Project name
201
+ - `-sprint` or `-s` : Sprint name (e.g., "sprint 1")
202
+ - `-task` or `-t` : Task ID
203
+ - `-date` or `-dt` : Date in YYYY-MM-DD format
204
+ - `-work` or `-w` : Work description (supports multiple tags)
205
+ - `-duration` or `-du` : Duration in minutes
206
+ - `-remarks` or `-r` : Additional remarks
207
+ - `-id` or `-i` : Entry ID (for update/delete operations)
208
+ - `-from` or `-f` : Start date for filtering
209
+ - `-to` or `-t` : End date for filtering
210
+
125
211
  ## License
126
212
 
127
213
  ISC
@@ -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