source_monitor 0.1.1 → 0.1.3
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 +27 -0
- data/Gemfile.lock +1 -1
- data/README.md +39 -11
- data/config/coverage_baseline.json +350 -107
- data/docs/deployment.md +8 -0
- data/docs/gh-cli-workflow.md +5 -1
- data/docs/setup-validation-log.md +36 -0
- data/docs/setup.md +156 -0
- data/lib/generators/source_monitor/install/install_generator.rb +1 -1
- data/lib/source_monitor/setup/bundle_installer.rb +17 -0
- data/lib/source_monitor/setup/cli.rb +51 -0
- data/lib/source_monitor/setup/dependency_checker.rb +165 -0
- data/lib/source_monitor/setup/detectors.rb +67 -0
- data/lib/source_monitor/setup/gemfile_editor.rb +29 -0
- data/lib/source_monitor/setup/initializer_patcher.rb +59 -0
- data/lib/source_monitor/setup/install_generator.rb +22 -0
- data/lib/source_monitor/setup/migration_installer.rb +40 -0
- data/lib/source_monitor/setup/node_installer.rb +27 -0
- data/lib/source_monitor/setup/prompter.rb +34 -0
- data/lib/source_monitor/setup/requirements.rb +51 -0
- data/lib/source_monitor/setup/shell_runner.rb +14 -0
- data/lib/source_monitor/setup/verification/action_cable_verifier.rb +79 -0
- data/lib/source_monitor/setup/verification/printer.rb +24 -0
- data/lib/source_monitor/setup/verification/result.rb +68 -0
- data/lib/source_monitor/setup/verification/runner.rb +24 -0
- data/lib/source_monitor/setup/verification/solid_queue_verifier.rb +75 -0
- data/lib/source_monitor/setup/verification/telemetry_logger.rb +33 -0
- data/lib/source_monitor/setup/workflow.rb +99 -0
- data/lib/source_monitor/version.rb +1 -1
- data/lib/source_monitor.rb +19 -0
- data/lib/tasks/source_monitor_setup.rake +39 -0
- data/tasks/prd-setup-workflow-streamlining.md +68 -0
- data/tasks/tasks-setup-workflow-streamlining.md +51 -0
- metadata +25 -2
- data/docs/installation.md +0 -144
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e458adf0859216249883d76b07cc0610f9f47f41f482ac1d480be3bc06ec26f1
|
|
4
|
+
data.tar.gz: 8db6aa2f83ee694c0425b411d55454508618a3bfd06859cd1809bd2eeb6e0ee6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 02f03ed5c8bb35fd658d85fa61fc3b57c3b1cdea5e75a3bfaeb21305f5691dd1ceed8178fe56e1d3547d4d0da79840952d9c66b6770a722bf907f7e55444bd1a
|
|
7
|
+
data.tar.gz: d832c80021645849113163fe3ac91b606a6852572285dd473452a544da6f68718ec2ce61eb605b6b3206ad1343caac8606d9229cd930d434bd5bcdb8124fdb84
|
data/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,33 @@ All notable changes to this project are documented below. The format follows [Ke
|
|
|
15
15
|
|
|
16
16
|
- No unreleased changes yet.
|
|
17
17
|
|
|
18
|
+
## [0.1.3] - 2025-11-13
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Clarified installation instructions for consumers: add `gem "source_monitor"` via RubyGems before running the guided workflow (README + docs/setup.md).
|
|
23
|
+
|
|
24
|
+
### Testing
|
|
25
|
+
|
|
26
|
+
- Documentation-only update; no code changes.
|
|
27
|
+
|
|
28
|
+
## [0.1.2] - 2025-11-13
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Guided setup workflow (`bin/source_monitor install`) with dependency checks, Gemfile automation, migration deduplication, initializer patching, and Devise prompt support.
|
|
33
|
+
- Reusable verification tooling (`bin/source_monitor verify` / `bin/rails source_monitor:setup:verify`) plus Solid Queue/Action Cable verifiers, JSON output, and optional telemetry logging.
|
|
34
|
+
- Fresh documentation (`docs/setup.md`, rollout checklist in `docs/deployment.md`, validation log) outlining prerequisites, rollback steps, and CI adoption guidance.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Enforced coverage/diff checks in CI, added `bin/check-setup-tests`, and expanded test suites so new setup workflow files stay covered.
|
|
39
|
+
- Hardened host harness env defaults to avoid `root` Postgres role errors during CI/app template generation.
|
|
40
|
+
|
|
41
|
+
### Testing
|
|
42
|
+
|
|
43
|
+
- Full suite (`bin/rails test`), `bin/test-coverage`, `bin/check-diff-coverage`, and `bin/rubocop` all pass on Ruby 3.4.4.
|
|
44
|
+
|
|
18
45
|
## [0.1.1] - 2025-11-09
|
|
19
46
|
|
|
20
47
|
### Changed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
SourceMonitor is a production-ready Rails 8 mountable engine for ingesting, normalising, scraping, and monitoring RSS/Atom/JSON feeds. It ships with a Tailwind-powered admin UI, Solid Queue job orchestration, Solid Cable realtime broadcasting, and an extensible configuration layer so host applications can offer full-stack feed operations without rebuilding infrastructure.
|
|
4
4
|
|
|
5
|
+
> **Note:** Application developers consume SourceMonitor via RubyGems—add the gem to your host application's Gemfile and follow the guided installer. Clone this repository only when contributing to the engine itself.
|
|
6
|
+
|
|
7
|
+
## Installation (RubyGems)
|
|
8
|
+
|
|
9
|
+
In your host Rails app:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bundle add source_monitor --version "~> 0.1.2"
|
|
13
|
+
# or add `gem "source_monitor", "~> 0.1.2"` manually, then run:
|
|
14
|
+
bundle install
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
This exposes `bin/source_monitor` (via Bundler binstubs) so you can run the guided workflow described below.
|
|
18
|
+
|
|
5
19
|
## Highlights
|
|
6
20
|
- Full-featured source and item administration backed by Turbo Streams and Tailwind UI components
|
|
7
21
|
- Adaptive fetch pipeline (Feedjira + Faraday) with conditional GETs, retention pruning, and scrape orchestration
|
|
@@ -20,25 +34,39 @@ SourceMonitor is a production-ready Rails 8 mountable engine for ingesting, norm
|
|
|
20
34
|
|
|
21
35
|
## Quick Start (Host Application)
|
|
22
36
|
|
|
23
|
-
> **
|
|
37
|
+
> **Command prefixes:** Examples below show bare `bundle`, `bin/rails`, and `bin/source_monitor`. If you use rbenv/asdf or containerized tooling, prefix/adjust commands accordingly so they run inside your Ruby environment.
|
|
38
|
+
|
|
39
|
+
### Install the Gem
|
|
40
|
+
|
|
41
|
+
Before running any SourceMonitor commands inside your host app, add the gem and install dependencies:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bundle add source_monitor --version "~> 0.1.2"
|
|
45
|
+
# or edit your Gemfile, then run
|
|
46
|
+
bundle install
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Recommended: Guided Workflow
|
|
50
|
+
1. **Optional prerequisite check:** `bin/rails source_monitor:setup:check`
|
|
51
|
+
2. **Run the guided installer:** `bin/source_monitor install --yes`
|
|
52
|
+
- Prompts for the mount path (default `/source_monitor`), adds the gem entry when missing, runs `bundle install`, `npm install` (when `package.json` exists), copies/deduplicates migrations, patches the initializer, and runs verification.
|
|
53
|
+
3. **Start workers / scheduler:** `bin/rails solid_queue:start` and, if you use recurring jobs, `bin/jobs --recurring_schedule_file=config/recurring.yml`.
|
|
54
|
+
4. **Verify anytime:** `bin/source_monitor verify` (also exposed as `bin/rails source_monitor:setup:verify`). The command prints a human summary plus JSON so CI can gate on Solid Queue and Action Cable health.
|
|
55
|
+
5. **Visit the dashboard** at the chosen mount path and trigger “Fetch Now” on a source to confirm everything is wired.
|
|
56
|
+
|
|
57
|
+
See [docs/setup.md](docs/setup.md) for the full workflow (prereq table, gem installation, rollback steps, telemetry flag, Devise system test template).
|
|
24
58
|
|
|
25
|
-
###
|
|
26
|
-
|
|
27
|
-
2. Install the engine: `bin/rails generate source_monitor:install --mount-path=/source_monitor` (updates routes, drops the initializer, prints doc links).
|
|
28
|
-
3. Copy migrations: `bin/rails railties:install:migrations FROM=source_monitor`.
|
|
29
|
-
4. Apply migrations: `bin/rails db:migrate` (creates sources/items/logs tables, Solid Cable messages, and Solid Queue schema when required).
|
|
30
|
-
5. Install frontend tooling if you plan to extend engine assets: `npm install`.
|
|
31
|
-
6. Start background workers: `bin/rails solid_queue:start` (or your preferred process manager).
|
|
32
|
-
7. Boot your app and visit the mount path you chose (default `/source_monitor`) to explore the dashboard and confirm Solid Queue metrics render.
|
|
59
|
+
### Manual Install (Advanced)
|
|
60
|
+
Prefer explicit Rails generator steps or need to customize each phase? The same document covers a full **Manual Installation** section so you can copy/paste each command into bespoke pipelines.
|
|
33
61
|
|
|
34
|
-
|
|
62
|
+
Troubleshooting advice lives in [docs/troubleshooting.md](docs/troubleshooting.md).
|
|
35
63
|
|
|
36
64
|
### Upgrading SourceMonitor
|
|
37
65
|
1. Bump the gem version in your host `Gemfile` and run `bundle install` (or `bundle update source_monitor` when targeting a specific release).
|
|
38
66
|
2. Re-run `bin/rails railties:install:migrations FROM=source_monitor` and then `bin/rails db:migrate` to pick up schema changes.
|
|
39
67
|
3. Compare your `config/initializers/source_monitor.rb` against the newly generated template for configuration diffs (new queue knobs, HTTP options, etc.).
|
|
40
68
|
4. Review release notes for optional integrations—when enabling Mission Control, ensure `mission_control-jobs` stays mounted and linked via `config.mission_control_dashboard_path`.
|
|
41
|
-
5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade.
|
|
69
|
+
5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade, and run `bin/source_monitor verify` so CI/deploys confirm workers/cable health before rollout.
|
|
42
70
|
|
|
43
71
|
## Example Applications
|
|
44
72
|
- `examples/basic_host/template.rb` – Minimal host that seeds a Rails blog source and redirects `/` to the dashboard.
|
|
@@ -132,21 +132,21 @@
|
|
|
132
132
|
82
|
|
133
133
|
],
|
|
134
134
|
"lib/source_monitor.rb": [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
125,
|
|
141
|
-
126,
|
|
142
|
-
127,
|
|
143
|
-
129,
|
|
144
|
-
131,
|
|
145
|
-
137,
|
|
146
|
-
141,
|
|
147
|
-
143,
|
|
135
|
+
29,
|
|
136
|
+
116,
|
|
137
|
+
132,
|
|
138
|
+
136,
|
|
139
|
+
140,
|
|
148
140
|
144,
|
|
149
|
-
|
|
141
|
+
145,
|
|
142
|
+
146,
|
|
143
|
+
148,
|
|
144
|
+
150,
|
|
145
|
+
156,
|
|
146
|
+
160,
|
|
147
|
+
162,
|
|
148
|
+
163,
|
|
149
|
+
165
|
|
150
150
|
],
|
|
151
151
|
"lib/source_monitor/analytics/source_activity_rates.rb": [
|
|
152
152
|
44
|
|
@@ -458,28 +458,28 @@
|
|
|
458
458
|
121
|
|
459
459
|
],
|
|
460
460
|
"lib/source_monitor/engine.rb": [
|
|
461
|
-
|
|
462
|
-
51,
|
|
463
|
-
52,
|
|
461
|
+
49,
|
|
464
462
|
53,
|
|
465
463
|
54,
|
|
466
|
-
|
|
467
|
-
|
|
464
|
+
55,
|
|
465
|
+
56,
|
|
468
466
|
61,
|
|
469
467
|
62,
|
|
470
468
|
63,
|
|
471
469
|
64,
|
|
472
470
|
65,
|
|
473
|
-
|
|
474
|
-
|
|
471
|
+
66,
|
|
472
|
+
67,
|
|
475
473
|
70,
|
|
476
|
-
|
|
477
|
-
|
|
474
|
+
71,
|
|
475
|
+
72,
|
|
476
|
+
75,
|
|
478
477
|
76,
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
99
|
|
478
|
+
78,
|
|
479
|
+
79,
|
|
480
|
+
98,
|
|
481
|
+
99,
|
|
482
|
+
101
|
|
483
483
|
],
|
|
484
484
|
"lib/source_monitor/events.rb": [
|
|
485
485
|
9,
|
|
@@ -823,10 +823,6 @@
|
|
|
823
823
|
32,
|
|
824
824
|
33,
|
|
825
825
|
37,
|
|
826
|
-
41,
|
|
827
|
-
42,
|
|
828
|
-
45,
|
|
829
|
-
46,
|
|
830
826
|
50,
|
|
831
827
|
52,
|
|
832
828
|
53,
|
|
@@ -843,8 +839,6 @@
|
|
|
843
839
|
69,
|
|
844
840
|
70,
|
|
845
841
|
71,
|
|
846
|
-
77,
|
|
847
|
-
79,
|
|
848
842
|
84,
|
|
849
843
|
85,
|
|
850
844
|
89,
|
|
@@ -932,8 +926,7 @@
|
|
|
932
926
|
35,
|
|
933
927
|
39,
|
|
934
928
|
43,
|
|
935
|
-
44
|
|
936
|
-
49
|
|
929
|
+
44
|
|
937
930
|
],
|
|
938
931
|
"lib/source_monitor/items/item_creator.rb": [
|
|
939
932
|
16,
|
|
@@ -1268,6 +1261,13 @@
|
|
|
1268
1261
|
77,
|
|
1269
1262
|
80
|
|
1270
1263
|
],
|
|
1264
|
+
"lib/source_monitor/jobs/fetch_failure_subscriber.rb": [
|
|
1265
|
+
62,
|
|
1266
|
+
98,
|
|
1267
|
+
111,
|
|
1268
|
+
120,
|
|
1269
|
+
122
|
|
1270
|
+
],
|
|
1271
1271
|
"lib/source_monitor/jobs/solid_queue_metrics.rb": [
|
|
1272
1272
|
20,
|
|
1273
1273
|
27,
|
|
@@ -1330,24 +1330,9 @@
|
|
|
1330
1330
|
43,
|
|
1331
1331
|
48,
|
|
1332
1332
|
49,
|
|
1333
|
-
54,
|
|
1334
1333
|
56,
|
|
1335
|
-
60,
|
|
1336
|
-
64,
|
|
1337
|
-
65,
|
|
1338
1334
|
70,
|
|
1339
1335
|
71,
|
|
1340
|
-
76,
|
|
1341
|
-
80,
|
|
1342
|
-
85,
|
|
1343
|
-
86,
|
|
1344
|
-
88,
|
|
1345
|
-
90,
|
|
1346
|
-
91,
|
|
1347
|
-
92,
|
|
1348
|
-
93,
|
|
1349
|
-
94,
|
|
1350
|
-
95,
|
|
1351
1336
|
102,
|
|
1352
1337
|
103,
|
|
1353
1338
|
105,
|
|
@@ -1397,13 +1382,8 @@
|
|
|
1397
1382
|
117
|
|
1398
1383
|
],
|
|
1399
1384
|
"lib/source_monitor/metrics.rb": [
|
|
1400
|
-
10,
|
|
1401
|
-
14,
|
|
1402
1385
|
18,
|
|
1403
1386
|
22,
|
|
1404
|
-
26,
|
|
1405
|
-
30,
|
|
1406
|
-
31,
|
|
1407
1387
|
38,
|
|
1408
1388
|
39,
|
|
1409
1389
|
43,
|
|
@@ -1412,16 +1392,7 @@
|
|
|
1412
1392
|
46,
|
|
1413
1393
|
48,
|
|
1414
1394
|
51,
|
|
1415
|
-
52
|
|
1416
|
-
56,
|
|
1417
|
-
57,
|
|
1418
|
-
59,
|
|
1419
|
-
60,
|
|
1420
|
-
61,
|
|
1421
|
-
62,
|
|
1422
|
-
63,
|
|
1423
|
-
70,
|
|
1424
|
-
74
|
|
1395
|
+
52
|
|
1425
1396
|
],
|
|
1426
1397
|
"lib/source_monitor/model_extensions.rb": [
|
|
1427
1398
|
53,
|
|
@@ -1465,11 +1436,6 @@
|
|
|
1465
1436
|
93
|
|
1466
1437
|
],
|
|
1467
1438
|
"lib/source_monitor/realtime/broadcaster.rb": [
|
|
1468
|
-
33,
|
|
1469
|
-
34,
|
|
1470
|
-
35,
|
|
1471
|
-
37,
|
|
1472
|
-
38,
|
|
1473
1439
|
42,
|
|
1474
1440
|
43,
|
|
1475
1441
|
44,
|
|
@@ -1511,20 +1477,11 @@
|
|
|
1511
1477
|
148,
|
|
1512
1478
|
149,
|
|
1513
1479
|
150,
|
|
1514
|
-
155,
|
|
1515
1480
|
167,
|
|
1516
|
-
171,
|
|
1517
|
-
180,
|
|
1518
1481
|
187,
|
|
1519
|
-
191,
|
|
1520
|
-
193,
|
|
1521
1482
|
195,
|
|
1522
|
-
199,
|
|
1523
|
-
202,
|
|
1524
|
-
204,
|
|
1525
1483
|
206,
|
|
1526
1484
|
210,
|
|
1527
|
-
214,
|
|
1528
1485
|
231,
|
|
1529
1486
|
233
|
|
1530
1487
|
],
|
|
@@ -1534,34 +1491,6 @@
|
|
|
1534
1491
|
"lib/source_monitor/release/runner.rb": [
|
|
1535
1492
|
68
|
|
1536
1493
|
],
|
|
1537
|
-
"lib/source_monitor/scheduler.rb": [
|
|
1538
|
-
12,
|
|
1539
|
-
16,
|
|
1540
|
-
17,
|
|
1541
|
-
21,
|
|
1542
|
-
23,
|
|
1543
|
-
24,
|
|
1544
|
-
25,
|
|
1545
|
-
26,
|
|
1546
|
-
28,
|
|
1547
|
-
29,
|
|
1548
|
-
32,
|
|
1549
|
-
34,
|
|
1550
|
-
43,
|
|
1551
|
-
45,
|
|
1552
|
-
46,
|
|
1553
|
-
47,
|
|
1554
|
-
48,
|
|
1555
|
-
51,
|
|
1556
|
-
55,
|
|
1557
|
-
63,
|
|
1558
|
-
64,
|
|
1559
|
-
68,
|
|
1560
|
-
70,
|
|
1561
|
-
71,
|
|
1562
|
-
72,
|
|
1563
|
-
74
|
|
1564
|
-
],
|
|
1565
1494
|
"lib/source_monitor/scrapers/base.rb": [
|
|
1566
1495
|
29,
|
|
1567
1496
|
33,
|
|
@@ -1991,6 +1920,293 @@
|
|
|
1991
1920
|
19,
|
|
1992
1921
|
23
|
|
1993
1922
|
],
|
|
1923
|
+
"lib/source_monitor/setup/bundle_installer.rb": [
|
|
1924
|
+
5,
|
|
1925
|
+
9
|
|
1926
|
+
],
|
|
1927
|
+
"lib/source_monitor/setup/cli.rb": [
|
|
1928
|
+
11,
|
|
1929
|
+
14,
|
|
1930
|
+
15,
|
|
1931
|
+
20,
|
|
1932
|
+
21,
|
|
1933
|
+
27,
|
|
1934
|
+
28,
|
|
1935
|
+
29,
|
|
1936
|
+
33,
|
|
1937
|
+
37,
|
|
1938
|
+
41,
|
|
1939
|
+
43,
|
|
1940
|
+
47
|
|
1941
|
+
],
|
|
1942
|
+
"lib/source_monitor/setup/dependency_checker.rb": [
|
|
1943
|
+
23,
|
|
1944
|
+
27,
|
|
1945
|
+
31,
|
|
1946
|
+
35,
|
|
1947
|
+
43,
|
|
1948
|
+
47,
|
|
1949
|
+
48,
|
|
1950
|
+
50,
|
|
1951
|
+
54,
|
|
1952
|
+
58,
|
|
1953
|
+
62,
|
|
1954
|
+
66,
|
|
1955
|
+
70,
|
|
1956
|
+
75,
|
|
1957
|
+
79,
|
|
1958
|
+
85,
|
|
1959
|
+
86,
|
|
1960
|
+
87,
|
|
1961
|
+
89,
|
|
1962
|
+
100,
|
|
1963
|
+
102,
|
|
1964
|
+
106,
|
|
1965
|
+
107,
|
|
1966
|
+
109,
|
|
1967
|
+
113,
|
|
1968
|
+
114,
|
|
1969
|
+
116,
|
|
1970
|
+
121,
|
|
1971
|
+
126,
|
|
1972
|
+
130,
|
|
1973
|
+
137,
|
|
1974
|
+
144,
|
|
1975
|
+
151,
|
|
1976
|
+
158
|
|
1977
|
+
],
|
|
1978
|
+
"lib/source_monitor/setup/detectors.rb": [
|
|
1979
|
+
7,
|
|
1980
|
+
11,
|
|
1981
|
+
13,
|
|
1982
|
+
17,
|
|
1983
|
+
18,
|
|
1984
|
+
20,
|
|
1985
|
+
22,
|
|
1986
|
+
26,
|
|
1987
|
+
27,
|
|
1988
|
+
29,
|
|
1989
|
+
31,
|
|
1990
|
+
35,
|
|
1991
|
+
36,
|
|
1992
|
+
42,
|
|
1993
|
+
44,
|
|
1994
|
+
46,
|
|
1995
|
+
50,
|
|
1996
|
+
52,
|
|
1997
|
+
55,
|
|
1998
|
+
59,
|
|
1999
|
+
61,
|
|
2000
|
+
63
|
|
2001
|
+
],
|
|
2002
|
+
"lib/source_monitor/setup/gemfile_editor.rb": [
|
|
2003
|
+
9,
|
|
2004
|
+
13,
|
|
2005
|
+
15,
|
|
2006
|
+
16,
|
|
2007
|
+
18,
|
|
2008
|
+
19,
|
|
2009
|
+
25
|
|
2010
|
+
],
|
|
2011
|
+
"lib/source_monitor/setup/initializer_patcher.rb": [
|
|
2012
|
+
9,
|
|
2013
|
+
13,
|
|
2014
|
+
15,
|
|
2015
|
+
16,
|
|
2016
|
+
17,
|
|
2017
|
+
19,
|
|
2018
|
+
20,
|
|
2019
|
+
21,
|
|
2020
|
+
25,
|
|
2021
|
+
27,
|
|
2022
|
+
28,
|
|
2023
|
+
30,
|
|
2024
|
+
31,
|
|
2025
|
+
32,
|
|
2026
|
+
34,
|
|
2027
|
+
37,
|
|
2028
|
+
38,
|
|
2029
|
+
46,
|
|
2030
|
+
50
|
|
2031
|
+
],
|
|
2032
|
+
"lib/source_monitor/setup/install_generator.rb": [
|
|
2033
|
+
5,
|
|
2034
|
+
9
|
|
2035
|
+
],
|
|
2036
|
+
"lib/source_monitor/setup/migration_installer.rb": [
|
|
2037
|
+
10,
|
|
2038
|
+
11,
|
|
2039
|
+
15,
|
|
2040
|
+
16,
|
|
2041
|
+
17,
|
|
2042
|
+
25,
|
|
2043
|
+
29,
|
|
2044
|
+
30,
|
|
2045
|
+
32,
|
|
2046
|
+
36
|
|
2047
|
+
],
|
|
2048
|
+
"lib/source_monitor/setup/node_installer.rb": [
|
|
2049
|
+
7,
|
|
2050
|
+
8,
|
|
2051
|
+
12,
|
|
2052
|
+
14,
|
|
2053
|
+
15,
|
|
2054
|
+
23
|
|
2055
|
+
],
|
|
2056
|
+
"lib/source_monitor/setup/prompter.rb": [
|
|
2057
|
+
7,
|
|
2058
|
+
8,
|
|
2059
|
+
12,
|
|
2060
|
+
14,
|
|
2061
|
+
15,
|
|
2062
|
+
16,
|
|
2063
|
+
20,
|
|
2064
|
+
22,
|
|
2065
|
+
23,
|
|
2066
|
+
24,
|
|
2067
|
+
26
|
|
2068
|
+
],
|
|
2069
|
+
"lib/source_monitor/setup/requirements.rb": [
|
|
2070
|
+
8,
|
|
2071
|
+
12,
|
|
2072
|
+
16,
|
|
2073
|
+
18,
|
|
2074
|
+
19,
|
|
2075
|
+
21,
|
|
2076
|
+
25,
|
|
2077
|
+
26,
|
|
2078
|
+
28,
|
|
2079
|
+
36,
|
|
2080
|
+
40,
|
|
2081
|
+
44,
|
|
2082
|
+
46
|
|
2083
|
+
],
|
|
2084
|
+
"lib/source_monitor/setup/shell_runner.rb": [
|
|
2085
|
+
7,
|
|
2086
|
+
8,
|
|
2087
|
+
10
|
|
2088
|
+
],
|
|
2089
|
+
"lib/source_monitor/setup/verification/action_cable_verifier.rb": [
|
|
2090
|
+
6,
|
|
2091
|
+
7,
|
|
2092
|
+
8,
|
|
2093
|
+
12,
|
|
2094
|
+
14,
|
|
2095
|
+
16,
|
|
2096
|
+
18,
|
|
2097
|
+
21,
|
|
2098
|
+
29,
|
|
2099
|
+
33,
|
|
2100
|
+
35,
|
|
2101
|
+
39,
|
|
2102
|
+
41,
|
|
2103
|
+
45,
|
|
2104
|
+
46,
|
|
2105
|
+
49,
|
|
2106
|
+
50,
|
|
2107
|
+
53,
|
|
2108
|
+
57,
|
|
2109
|
+
58,
|
|
2110
|
+
59,
|
|
2111
|
+
62,
|
|
2112
|
+
66,
|
|
2113
|
+
70,
|
|
2114
|
+
74
|
|
2115
|
+
],
|
|
2116
|
+
"lib/source_monitor/setup/verification/printer.rb": [
|
|
2117
|
+
6,
|
|
2118
|
+
10,
|
|
2119
|
+
11,
|
|
2120
|
+
12,
|
|
2121
|
+
13,
|
|
2122
|
+
15
|
|
2123
|
+
],
|
|
2124
|
+
"lib/source_monitor/setup/verification/result.rb": [
|
|
2125
|
+
15,
|
|
2126
|
+
19,
|
|
2127
|
+
23,
|
|
2128
|
+
28,
|
|
2129
|
+
41,
|
|
2130
|
+
45,
|
|
2131
|
+
46,
|
|
2132
|
+
48,
|
|
2133
|
+
52,
|
|
2134
|
+
57,
|
|
2135
|
+
63
|
|
2136
|
+
],
|
|
2137
|
+
"lib/source_monitor/setup/verification/runner.rb": [
|
|
2138
|
+
6,
|
|
2139
|
+
10,
|
|
2140
|
+
11,
|
|
2141
|
+
19
|
|
2142
|
+
],
|
|
2143
|
+
"lib/source_monitor/setup/verification/solid_queue_verifier.rb": [
|
|
2144
|
+
8,
|
|
2145
|
+
9,
|
|
2146
|
+
10,
|
|
2147
|
+
14,
|
|
2148
|
+
15,
|
|
2149
|
+
17,
|
|
2150
|
+
19,
|
|
2151
|
+
20,
|
|
2152
|
+
22,
|
|
2153
|
+
25,
|
|
2154
|
+
33,
|
|
2155
|
+
37,
|
|
2156
|
+
39,
|
|
2157
|
+
43,
|
|
2158
|
+
45,
|
|
2159
|
+
49,
|
|
2160
|
+
50,
|
|
2161
|
+
54,
|
|
2162
|
+
58,
|
|
2163
|
+
62,
|
|
2164
|
+
66,
|
|
2165
|
+
70
|
|
2166
|
+
],
|
|
2167
|
+
"lib/source_monitor/setup/verification/telemetry_logger.rb": [
|
|
2168
|
+
9,
|
|
2169
|
+
13,
|
|
2170
|
+
14,
|
|
2171
|
+
15,
|
|
2172
|
+
24,
|
|
2173
|
+
25,
|
|
2174
|
+
27
|
|
2175
|
+
],
|
|
2176
|
+
"lib/source_monitor/setup/workflow.rb": [
|
|
2177
|
+
12,
|
|
2178
|
+
13,
|
|
2179
|
+
19,
|
|
2180
|
+
20,
|
|
2181
|
+
22,
|
|
2182
|
+
38,
|
|
2183
|
+
39,
|
|
2184
|
+
40,
|
|
2185
|
+
41,
|
|
2186
|
+
42,
|
|
2187
|
+
43,
|
|
2188
|
+
44,
|
|
2189
|
+
45,
|
|
2190
|
+
46,
|
|
2191
|
+
47,
|
|
2192
|
+
51,
|
|
2193
|
+
52,
|
|
2194
|
+
54,
|
|
2195
|
+
56,
|
|
2196
|
+
57,
|
|
2197
|
+
58,
|
|
2198
|
+
59,
|
|
2199
|
+
60,
|
|
2200
|
+
61,
|
|
2201
|
+
63,
|
|
2202
|
+
64,
|
|
2203
|
+
67,
|
|
2204
|
+
84,
|
|
2205
|
+
88,
|
|
2206
|
+
92,
|
|
2207
|
+
93,
|
|
2208
|
+
95
|
|
2209
|
+
],
|
|
1994
2210
|
"lib/source_monitor/turbo_streams/stream_responder.rb": [
|
|
1995
2211
|
35,
|
|
1996
2212
|
36,
|
|
@@ -2006,5 +2222,32 @@
|
|
|
2006
2222
|
1,
|
|
2007
2223
|
2,
|
|
2008
2224
|
3
|
|
2225
|
+
],
|
|
2226
|
+
"lib/tasks/source_monitor_assets.rake": [
|
|
2227
|
+
7,
|
|
2228
|
+
12
|
|
2229
|
+
],
|
|
2230
|
+
"lib/tasks/source_monitor_setup.rake": [
|
|
2231
|
+
31
|
|
2232
|
+
],
|
|
2233
|
+
"lib/tasks/source_monitor_tasks.rake": [
|
|
2234
|
+
5,
|
|
2235
|
+
7,
|
|
2236
|
+
8,
|
|
2237
|
+
9,
|
|
2238
|
+
10,
|
|
2239
|
+
13,
|
|
2240
|
+
14,
|
|
2241
|
+
17,
|
|
2242
|
+
22,
|
|
2243
|
+
23,
|
|
2244
|
+
24,
|
|
2245
|
+
26
|
|
2246
|
+
],
|
|
2247
|
+
"lib/tasks/test_smoke.rake": [
|
|
2248
|
+
6,
|
|
2249
|
+
7,
|
|
2250
|
+
8,
|
|
2251
|
+
10
|
|
2009
2252
|
]
|
|
2010
2253
|
}
|
data/docs/deployment.md
CHANGED
|
@@ -61,3 +61,11 @@ Keep this guide alongside your platform runbooks so teams can confidently deploy
|
|
|
61
61
|
## Container Reference Stack
|
|
62
62
|
|
|
63
63
|
The repository ships a reusable Docker stack under `examples/docker` that mirrors the recommended process model. It builds a Ruby 3.3 image with Node, mounts your generated example via `APP_PATH`, and launches three services (`web`, `worker`, `scheduler`) alongside Postgres and Redis. Use it to trial production settings locally or as a baseline for ECS/Kubernetes manifests.
|
|
64
|
+
|
|
65
|
+
## Setup Workflow Rollout Checklist
|
|
66
|
+
|
|
67
|
+
1. **Adopt the CLI** – add `bin/source_monitor install --yes` (or an equivalent rake task wrapper) to your internal onboarding docs for both greenfield apps and existing hosts. Pair it with `bin/source_monitor verify` so operators can re-check queue/Action Cable health after deployments.
|
|
68
|
+
2. **CI Gate** – extend your deploy pipeline to invoke `bin/source_monitor verify` right after migrations. Fail the build when the command exits non-zero and surface the JSON blob produced by the printer for diagnostics. This step replaces ad-hoc “did you start Solid Queue?” questions before merging.
|
|
69
|
+
3. **Telemetry Opt-In** – set `SOURCE_MONITOR_SETUP_TELEMETRY=true` in staging/pre-prod so setup runs append logs to `log/source_monitor_setup.log`. Ship the file as a build artifact for debugging failed installs.
|
|
70
|
+
4. **Rollback Ready** – reference `docs/setup.md#rollback-steps` in your release checklist so anyone piloting the workflow knows how to revert gem/routes/initializer changes if the experiment needs to pause.
|
|
71
|
+
5. **Worker Coverage** – ensure at least one Solid Queue worker is running (or emits a heartbeat) before moving the PR out of draft; otherwise verification exits with a warning and CI will fail.
|