appydave-tools 0.20.0 → 0.21.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/bin/bank_reconciliation.rb +0 -1
- data/bin/configuration.rb +0 -1
- data/bin/dam +268 -14
- data/docs/dam/dam-testing-plan.md +152 -86
- data/docs/dam/prd-client-sharing.md +693 -0
- data/docs/dam/windows/README.md +40 -0
- data/docs/development/CODEX-recommendations.md +13 -9
- data/lib/appydave/tools/configuration/models/config_base.rb +1 -2
- data/lib/appydave/tools/dam/manifest_generator.rb +89 -36
- data/lib/appydave/tools/dam/repo_push.rb +1 -1
- data/lib/appydave/tools/dam/repo_status.rb +30 -8
- data/lib/appydave/tools/dam/s3_operations.rb +64 -8
- data/lib/appydave/tools/dam/share_operations.rb +234 -0
- data/lib/appydave/tools/dam/status.rb +8 -4
- data/lib/appydave/tools/version.rb +1 -1
- data/lib/appydave/tools.rb +1 -0
- data/package.json +1 -1
- metadata +7 -7
- data/docs/SESSION-SUMMARY-WINDOWS-PREP.md +0 -340
- data/docs/WINDOWS-COMPATIBILITY-REPORT.md +0 -429
- data/docs/WINDOWS-START-HERE.md +0 -202
- /data/docs/dam/{windows-testing-guide.md → windows/dam-testing-plan-windows-powershell.md} +0 -0
- /data/docs/{WINDOWS-SETUP.md → dam/windows/installation.md} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# DAM (Digital Asset Management) - Integration Testing Plan
|
|
2
2
|
|
|
3
|
-
**Date**: 2025-11-
|
|
3
|
+
**Date**: 2025-11-10
|
|
4
4
|
**Purpose**: Validate DAM integration into appydave-tools gem
|
|
5
5
|
**Tester**: David Cruwys
|
|
6
6
|
**Status**: Ready for User Acceptance Testing
|
|
7
7
|
|
|
8
8
|
**Reference**: Original UAT plan at `/Users/davidcruwys/dev/video-projects/video-asset-tools/docs/testing-plan.md`
|
|
9
9
|
|
|
10
|
-
**Windows Testing**: See [
|
|
10
|
+
**Windows Testing**: See [dam-testing-plan-windows-powershell.md](./dam-testing-plan-windows-powershell.md) for Windows-specific testing scenarios
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -37,25 +37,17 @@
|
|
|
37
37
|
- ✅ `dam archive` - Archive to SSD with dry-run and force options
|
|
38
38
|
- ✅ `dam sync-ssd` - Restore light files from SSD (dry-run supported)
|
|
39
39
|
|
|
40
|
-
**
|
|
40
|
+
**Commands - Phase 4 Complete** (Status & Git Integration):
|
|
41
|
+
- ✅ `dam status` - Unified status view (local/S3/SSD/git)
|
|
42
|
+
- ✅ `dam repo-status` - Git status for brand repositories (supports `--all`)
|
|
43
|
+
- ✅ `dam repo-sync` - Pull updates for brand repositories (supports `--all`)
|
|
44
|
+
- ✅ `dam repo-push` - Push changes for brand repository (optional project validation)
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
**Why not migrated:**
|
|
49
|
-
1. These manage **git repositories**, not **video assets**
|
|
50
|
-
2. They loop through brand folders running git commands
|
|
51
|
-
3. They're workflow automation for the video-projects repo structure
|
|
52
|
-
4. They belong in `/video-projects/v-shared/`, not in the appydave-tools gem
|
|
53
|
-
5. Different use case: repo management vs. video file management
|
|
54
|
-
|
|
55
|
-
**If you want these migrated:** We could add `dam repo-status`, `dam repo-sync`, `dam repo-clone` commands, but they would:
|
|
56
|
-
- Need Ruby implementations of multi-repo git operations
|
|
57
|
-
- Duplicate functionality that shell scripts handle well
|
|
58
|
-
- Mix concerns (video assets vs. git repos)
|
|
46
|
+
**New Manifest Fields (Phase 4)**:
|
|
47
|
+
- ✅ `git_remote` - Self-healing git remote URL detection in brands.json
|
|
48
|
+
- ✅ `s3: { exists: true/false }` - S3 staging folder tracking in manifest
|
|
49
|
+
- ✅ `type: 'flivideo' | 'storyline-app'` - Project type detection
|
|
50
|
+
- ✅ `hasStorylineJson: true/false` - Storyline project identification
|
|
59
51
|
|
|
60
52
|
---
|
|
61
53
|
|
|
@@ -150,10 +142,19 @@ These commands only read data and don't modify files:
|
|
|
150
142
|
| Command | Type | What It Does |
|
|
151
143
|
|---------|------|--------------|
|
|
152
144
|
| **list** | Read-only | List brands/projects |
|
|
145
|
+
| **status** | Read-only | Show unified status (local/S3/SSD/git) |
|
|
146
|
+
| **repo-status** | Read-only | Check git status for brand repos |
|
|
153
147
|
| **manifest** | Generates JSON | Generate `projects.json` manifest |
|
|
154
148
|
| **s3-status** | Read-only | Check sync status |
|
|
155
149
|
| **help** | Read-only | Show help information |
|
|
156
150
|
|
|
151
|
+
### Git Commands (Special Behavior)
|
|
152
|
+
|
|
153
|
+
| Command | Type | What It Does | Safety Features |
|
|
154
|
+
|---------|------|--------------|-----------------|
|
|
155
|
+
| **repo-sync** | Modifies (git pull) | Pull updates for brand repos | Skips if uncommitted changes |
|
|
156
|
+
| **repo-push** | Modifies (git push) | Push changes for brand repo | Warns if uncommitted changes, optional project validation |
|
|
157
|
+
|
|
157
158
|
### Force Flag Behavior
|
|
158
159
|
|
|
159
160
|
Commands requiring `--force` provide extra protection for destructive operations:
|
|
@@ -244,14 +245,14 @@ bundle exec rspec spec/appydave/tools/dam/config_loader_spec.rb
|
|
|
244
245
|
#### Test 2.1: Help System
|
|
245
246
|
```bash
|
|
246
247
|
# Test: Main help
|
|
247
|
-
|
|
248
|
+
dam help
|
|
248
249
|
|
|
249
250
|
# Test: Command-specific help
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
251
|
+
dam help list
|
|
252
|
+
dam help s3-up
|
|
253
|
+
dam help s3-down
|
|
254
|
+
dam help brands
|
|
255
|
+
dam help workflows
|
|
255
256
|
```
|
|
256
257
|
**Expected**:
|
|
257
258
|
- Full help overview
|
|
@@ -264,40 +265,22 @@ bin/dam help workflows
|
|
|
264
265
|
|
|
265
266
|
---
|
|
266
267
|
|
|
267
|
-
#### Test 2.3: List Brands
|
|
268
|
-
```bash
|
|
269
|
-
# Test: List brands only
|
|
270
|
-
bin/dam list
|
|
271
|
-
```
|
|
272
|
-
**Expected**: `Brands: aitldr, appydave, joy, kiros, ss, voz` (shortcuts)
|
|
273
|
-
|
|
274
|
-
**Status**: [ ] Pass [ ] Fail
|
|
275
|
-
**Notes**: ___________________________________________
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
#### Test 2.4: List Brands with Summary (Mode 2)
|
|
268
|
+
#### Test 2.3: List Brands
|
|
280
269
|
```bash
|
|
281
|
-
# Test:
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
**Expected**:
|
|
285
|
-
```
|
|
286
|
-
aitldr: X projects
|
|
287
|
-
appydave: Y projects
|
|
288
|
-
joy: Z projects
|
|
289
|
-
...
|
|
270
|
+
# Test: List all brands with project counts
|
|
271
|
+
dam list
|
|
290
272
|
```
|
|
273
|
+
**Expected**: Tabular output showing all brands with project counts, sizes, and paths
|
|
291
274
|
|
|
292
275
|
**Status**: [ ] Pass [ ] Fail
|
|
293
276
|
**Notes**: ___________________________________________
|
|
294
277
|
|
|
295
278
|
---
|
|
296
279
|
|
|
297
|
-
#### Test 2.
|
|
280
|
+
#### Test 2.4: List Brand Projects
|
|
298
281
|
```bash
|
|
299
282
|
# Test: All projects for brand
|
|
300
|
-
|
|
283
|
+
dam list appydave
|
|
301
284
|
```
|
|
302
285
|
**Expected**: List of all appydave projects (excludes `archived/`, `.git`, etc.)
|
|
303
286
|
|
|
@@ -306,10 +289,10 @@ bin/dam list appydave
|
|
|
306
289
|
|
|
307
290
|
---
|
|
308
291
|
|
|
309
|
-
#### Test 2.
|
|
292
|
+
#### Test 2.5: Pattern Matching
|
|
310
293
|
```bash
|
|
311
294
|
# Test: Pattern matching
|
|
312
|
-
|
|
295
|
+
dam list appydave 'b6*'
|
|
313
296
|
```
|
|
314
297
|
**Expected**: Only projects starting with `b6` (b60-b69)
|
|
315
298
|
|
|
@@ -318,7 +301,7 @@ bin/dam list appydave 'b6*'
|
|
|
318
301
|
|
|
319
302
|
---
|
|
320
303
|
|
|
321
|
-
#### Test 2.
|
|
304
|
+
#### Test 2.6: S3 Upload with CLI Args
|
|
322
305
|
```bash
|
|
323
306
|
# Test: Upload with explicit args (dry-run)
|
|
324
307
|
bin/s3_sync_up.rb appydave b65 --dry-run
|
|
@@ -330,7 +313,7 @@ bin/s3_sync_up.rb appydave b65 --dry-run
|
|
|
330
313
|
|
|
331
314
|
---
|
|
332
315
|
|
|
333
|
-
#### Test 2.
|
|
316
|
+
#### Test 2.7: S3 Upload Auto-Detect
|
|
334
317
|
```bash
|
|
335
318
|
# Test: Upload from project directory
|
|
336
319
|
cd ~/dev/video-projects/v-appydave/b65-*
|
|
@@ -343,7 +326,7 @@ bin/s3_sync_up.rb --dry-run
|
|
|
343
326
|
|
|
344
327
|
---
|
|
345
328
|
|
|
346
|
-
#### Test 2.
|
|
329
|
+
#### Test 2.8: S3 Download with CLI Args ⭐ NEW
|
|
347
330
|
```bash
|
|
348
331
|
# Test: Download with explicit args (dry-run)
|
|
349
332
|
bin/s3_sync_down.rb appydave b65 --dry-run
|
|
@@ -355,7 +338,7 @@ bin/s3_sync_down.rb appydave b65 --dry-run
|
|
|
355
338
|
|
|
356
339
|
---
|
|
357
340
|
|
|
358
|
-
#### Test 2.
|
|
341
|
+
#### Test 2.9: S3 Download Auto-Detect ⭐ NEW
|
|
359
342
|
```bash
|
|
360
343
|
# Test: Download from project directory
|
|
361
344
|
cd ~/dev/video-projects/v-appydave/b65-*
|
|
@@ -368,7 +351,7 @@ bin/s3_sync_down.rb --dry-run
|
|
|
368
351
|
|
|
369
352
|
---
|
|
370
353
|
|
|
371
|
-
#### Test 2.
|
|
354
|
+
#### Test 2.10: S3 Status with CLI Args ⭐ NEW
|
|
372
355
|
```bash
|
|
373
356
|
# Test: Check status with explicit args
|
|
374
357
|
bin/s3_sync_status.rb appydave b65
|
|
@@ -380,7 +363,7 @@ bin/s3_sync_status.rb appydave b65
|
|
|
380
363
|
|
|
381
364
|
---
|
|
382
365
|
|
|
383
|
-
#### Test 2.
|
|
366
|
+
#### Test 2.11: S3 Status Auto-Detect ⭐ NEW
|
|
384
367
|
```bash
|
|
385
368
|
# Test: Check status from project directory
|
|
386
369
|
cd ~/dev/video-projects/v-appydave/b65-*
|
|
@@ -393,7 +376,7 @@ bin/s3_sync_status.rb
|
|
|
393
376
|
|
|
394
377
|
---
|
|
395
378
|
|
|
396
|
-
#### Test 2.
|
|
379
|
+
#### Test 2.12: S3 Cleanup with CLI Args ⭐ NEW
|
|
397
380
|
```bash
|
|
398
381
|
# Test: Cleanup with explicit args (dry-run)
|
|
399
382
|
bin/s3_sync_cleanup.rb appydave b65 --dry-run
|
|
@@ -405,7 +388,7 @@ bin/s3_sync_cleanup.rb appydave b65 --dry-run
|
|
|
405
388
|
|
|
406
389
|
---
|
|
407
390
|
|
|
408
|
-
#### Test 2.
|
|
391
|
+
#### Test 2.13: S3 Cleanup Auto-Detect ⭐ NEW
|
|
409
392
|
```bash
|
|
410
393
|
# Test: Cleanup from project directory
|
|
411
394
|
cd ~/dev/video-projects/v-appydave/b65-*
|
|
@@ -418,6 +401,102 @@ bin/s3_sync_cleanup.rb --dry-run
|
|
|
418
401
|
|
|
419
402
|
---
|
|
420
403
|
|
|
404
|
+
#### Test 2.14: Status - Brand Overview ⭐ PHASE 4
|
|
405
|
+
```bash
|
|
406
|
+
# Test: Show unified status for entire brand
|
|
407
|
+
dam status appydave
|
|
408
|
+
```
|
|
409
|
+
**Expected**: Shows brand git status, manifest summary (total projects, local, S3, SSD counts)
|
|
410
|
+
|
|
411
|
+
**Status**: [ ] Pass [ ] Fail
|
|
412
|
+
**Notes**: ___________________________________________
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
#### Test 2.15: Status - Specific Project ⭐ PHASE 4
|
|
417
|
+
```bash
|
|
418
|
+
# Test: Show detailed status for specific project
|
|
419
|
+
dam status appydave b65
|
|
420
|
+
```
|
|
421
|
+
**Expected**: Shows storage locations (local, S3 staging, SSD backup) and git status for project
|
|
422
|
+
|
|
423
|
+
**Status**: [ ] Pass [ ] Fail
|
|
424
|
+
**Notes**: ___________________________________________
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
#### Test 2.16: Repo Status - Single Brand ⭐ PHASE 4
|
|
429
|
+
```bash
|
|
430
|
+
# Test: Show git status for single brand
|
|
431
|
+
dam repo-status appydave
|
|
432
|
+
```
|
|
433
|
+
**Expected**: Shows branch, remote, working directory status, sync status
|
|
434
|
+
|
|
435
|
+
**Status**: [ ] Pass [ ] Fail
|
|
436
|
+
**Notes**: ___________________________________________
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
#### Test 2.17: Repo Status - All Brands ⭐ PHASE 4
|
|
441
|
+
```bash
|
|
442
|
+
# Test: Show git status for all brands
|
|
443
|
+
dam repo-status --all
|
|
444
|
+
```
|
|
445
|
+
**Expected**: Shows git status for all configured brands (appydave, voz, aitldr, etc.)
|
|
446
|
+
|
|
447
|
+
**Status**: [ ] Pass [ ] Fail
|
|
448
|
+
**Notes**: ___________________________________________
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
#### Test 2.18: Repo Sync - Single Brand ⭐ PHASE 4
|
|
453
|
+
```bash
|
|
454
|
+
# Test: Pull updates for single brand
|
|
455
|
+
dam repo-sync appydave
|
|
456
|
+
```
|
|
457
|
+
**Expected**: Pulls updates if available, skips if uncommitted changes, shows status
|
|
458
|
+
|
|
459
|
+
**Status**: [ ] Pass [ ] Fail
|
|
460
|
+
**Notes**: ___________________________________________
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
#### Test 2.19: Repo Sync - All Brands ⭐ PHASE 4
|
|
465
|
+
```bash
|
|
466
|
+
# Test: Pull updates for all brands
|
|
467
|
+
dam repo-sync --all
|
|
468
|
+
```
|
|
469
|
+
**Expected**: Syncs all brands, shows summary, skips brands with uncommitted changes
|
|
470
|
+
|
|
471
|
+
**Status**: [ ] Pass [ ] Fail
|
|
472
|
+
**Notes**: ___________________________________________
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
#### Test 2.20: Repo Push - Basic ⭐ PHASE 4
|
|
477
|
+
```bash
|
|
478
|
+
# Test: Push changes for brand (no project validation)
|
|
479
|
+
dam repo-push appydave
|
|
480
|
+
```
|
|
481
|
+
**Expected**: Pushes commits, shows push summary
|
|
482
|
+
|
|
483
|
+
**Status**: [ ] Pass [ ] Fail
|
|
484
|
+
**Notes**: ___________________________________________
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
#### Test 2.21: Repo Push - With Project Validation ⭐ PHASE 4
|
|
489
|
+
```bash
|
|
490
|
+
# Test: Push with project validation
|
|
491
|
+
dam repo-push appydave b65
|
|
492
|
+
```
|
|
493
|
+
**Expected**: Validates project exists in manifest before pushing, shows validation message
|
|
494
|
+
|
|
495
|
+
**Status**: [ ] Pass [ ] Fail
|
|
496
|
+
**Notes**: ___________________________________________
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
421
500
|
### Phase 3: Gem Installation Tests (Manual - Installed Gem)
|
|
422
501
|
|
|
423
502
|
**Prerequisites**: `gem install pkg/appydave-tools-*.gem`
|
|
@@ -670,31 +749,18 @@ All video asset management commands have been successfully migrated and are full
|
|
|
670
749
|
- ✅ `dam archive` - Archive to SSD (dry-run + optional force)
|
|
671
750
|
- ✅ `dam sync-ssd` - Restore light files from SSD (dry-run)
|
|
672
751
|
|
|
752
|
+
### Phase 4: Status & Git Integration
|
|
753
|
+
- ✅ `dam status` - Unified status view (local/S3/SSD/git)
|
|
754
|
+
- ✅ `dam repo-status` - Git status for brand repositories (`--all` support)
|
|
755
|
+
- ✅ `dam repo-sync` - Pull updates for brand repositories (`--all` support)
|
|
756
|
+
- ✅ `dam repo-push` - Push changes with optional project validation
|
|
757
|
+
|
|
673
758
|
### All Commands Support:
|
|
674
759
|
- **CLI args**: `dam <command> <brand> <project>`
|
|
675
760
|
- **Auto-detect**: Works from project directory (where applicable)
|
|
676
761
|
- **Dry-run**: All destructive operations support `--dry-run`
|
|
677
762
|
- **Force flags**: Extra safety for deletions
|
|
678
|
-
|
|
679
|
-
---
|
|
680
|
-
|
|
681
|
-
## Git Repository Scripts - Separate Concern
|
|
682
|
-
|
|
683
|
-
The following shell scripts are **intentionally not migrated** as they manage git repositories, not video assets:
|
|
684
|
-
|
|
685
|
-
### `/video-projects/v-shared/*.sh`
|
|
686
|
-
|
|
687
|
-
- `status-all.sh` - Runs `git status` on all v-* brand repos
|
|
688
|
-
- `sync-all.sh` - Runs `git pull` on all v-* brand repos
|
|
689
|
-
- `clone-all.sh` - Clones missing v-* brand repos
|
|
690
|
-
|
|
691
|
-
**Why separate:**
|
|
692
|
-
1. Different domain: Git repository management vs. video asset management
|
|
693
|
-
2. Different tools: Shell + git commands vs. Ruby + AWS/file operations
|
|
694
|
-
3. Different location: Belongs in video-projects workspace, not in distributed gem
|
|
695
|
-
4. Shell scripts work perfectly for this use case
|
|
696
|
-
|
|
697
|
-
**If migration is desired:** Could add `dam repo-status/sync/clone` but would duplicate working shell functionality and mix concerns.
|
|
763
|
+
- **Git integration**: Unified status + repo management commands
|
|
698
764
|
|
|
699
765
|
---
|
|
700
766
|
|
|
@@ -707,8 +773,8 @@ The following shell scripts are **intentionally not migrated** as they manage gi
|
|
|
707
773
|
- **TOTAL**: **64 / 64 ✅**
|
|
708
774
|
|
|
709
775
|
### Phase 2: Integration Tests (Manual - Development)
|
|
710
|
-
- Passed: _____ /
|
|
711
|
-
- Failed: _____ /
|
|
776
|
+
- Passed: _____ / 23
|
|
777
|
+
- Failed: _____ / 23
|
|
712
778
|
|
|
713
779
|
### Phase 3: Gem Installation Tests (Manual - Installed)
|
|
714
780
|
- Passed: _____ / 6
|
|
@@ -728,8 +794,8 @@ The following shell scripts are **intentionally not migrated** as they manage gi
|
|
|
728
794
|
|
|
729
795
|
### **GRAND TOTAL**
|
|
730
796
|
- **Unit Tests**: 64 / 64 ✅
|
|
731
|
-
- **Manual Tests**: _____ /
|
|
732
|
-
- **Overall**: _____ /
|
|
797
|
+
- **Manual Tests**: _____ / 39
|
|
798
|
+
- **Overall**: _____ / 103
|
|
733
799
|
|
|
734
800
|
---
|
|
735
801
|
|
|
@@ -832,8 +898,8 @@ The following shell scripts are **intentionally not migrated** as they manage gi
|
|
|
832
898
|
|
|
833
899
|
**Then manual development tests** (safest first):
|
|
834
900
|
2. Phase 2.1-2.5: Help and list commands
|
|
835
|
-
3. Phase 2.6-2.
|
|
836
|
-
4. Phase 2.
|
|
901
|
+
3. Phase 2.6-2.14: S3 commands (upload, download, status, cleanup) with dry-run
|
|
902
|
+
4. Phase 2.15-2.23: Phase 4 commands (status, repo-status, repo-sync, repo-push) ⭐ NEW
|
|
837
903
|
5. Phase 4: Edge cases and error handling
|
|
838
904
|
|
|
839
905
|
**Then gem installation tests**:
|