@amiable-dev/docusaurus-plugin-stentorosaur 0.14.2 → 0.15.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/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/theme/StatusPage/index.d.ts.map +1 -1
- package/lib/theme/StatusPage/index.js +6 -4
- package/lib/theme/UptimeStatusPage/index.d.ts.map +1 -1
- package/lib/theme/UptimeStatusPage/index.js +6 -4
- package/lib/types.d.ts +11 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/templates/workflows/README.md +127 -231
- package/templates/workflows/deploy.yml +3 -4
- package/templates/workflows/monitor-systems.yml +128 -44
- package/templates/workflows/calculate-metrics.yml +0 -171
- package/templates/workflows/deploy-scheduled.yml +0 -101
- package/templates/workflows/status-update.yml +0 -254
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAI,EAAC,aAAa,EAAE,UAAU,EAAqE,MAAM,SAAS,CAAC;AAI1H,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAgH1C;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAalD;AAED,wBAA8B,YAAY,CACxC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAI,EAAC,aAAa,EAAE,UAAU,EAAqE,MAAM,SAAS,CAAC;AAI1H,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAgH1C;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAalD;AAED,wBAA8B,YAAY,CACxC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAyhB7B;AAED,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -176,6 +176,7 @@ async function pluginStatus(context, options) {
|
|
|
176
176
|
showIncidents,
|
|
177
177
|
showPerformanceMetrics,
|
|
178
178
|
useDemoData: true,
|
|
179
|
+
fetchUrl: options.fetchUrl,
|
|
179
180
|
};
|
|
180
181
|
// Ensure directory exists
|
|
181
182
|
await fs_extra_1.default.ensureDir(statusDataDir);
|
|
@@ -399,6 +400,7 @@ async function pluginStatus(context, options) {
|
|
|
399
400
|
showIncidents,
|
|
400
401
|
showPerformanceMetrics,
|
|
401
402
|
useDemoData: shouldUseDemoData,
|
|
403
|
+
fetchUrl: options.fetchUrl,
|
|
402
404
|
};
|
|
403
405
|
// Ensure directory exists
|
|
404
406
|
await fs_extra_1.default.ensureDir(statusDataDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/StatusPage/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,UAAU,EAAmB,MAAM,aAAa,CAAC;AAI9D,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAC,UAAU,EAAC,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/StatusPage/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,UAAU,EAAmB,MAAM,aAAa,CAAC;AAI9D,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAC,UAAU,EAAC,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAsNnE"}
|
|
@@ -20,7 +20,7 @@ const PerformanceMetrics_1 = __importDefault(require("../PerformanceMetrics"));
|
|
|
20
20
|
const version_1 = require("../../version");
|
|
21
21
|
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
22
22
|
function StatusPage({ statusData }) {
|
|
23
|
-
const { items = [], incidents = [], maintenance = [], lastUpdated, showServices = true, showIncidents = true, showPerformanceMetrics = true, useDemoData = false, } = statusData || {};
|
|
23
|
+
const { items = [], incidents = [], maintenance = [], lastUpdated, showServices = true, showIncidents = true, showPerformanceMetrics = true, useDemoData = false, fetchUrl, } = statusData || {};
|
|
24
24
|
const [systemFiles, setSystemFiles] = (0, react_1.useState)([]);
|
|
25
25
|
const [activeSystemIndex, setActiveSystemIndex] = (0, react_1.useState)(null);
|
|
26
26
|
// Default values if not provided
|
|
@@ -34,8 +34,10 @@ function StatusPage({ statusData }) {
|
|
|
34
34
|
}
|
|
35
35
|
const files = [];
|
|
36
36
|
// Try new format first (current.json - v0.4.0+)
|
|
37
|
+
// Use fetchUrl if configured for runtime data fetching (e.g., from raw.githubusercontent.com)
|
|
38
|
+
const dataBaseUrl = fetchUrl || '/status-data';
|
|
37
39
|
try {
|
|
38
|
-
const response = await fetch(
|
|
40
|
+
const response = await fetch(`${dataBaseUrl}/current.json`);
|
|
39
41
|
if (response.ok) {
|
|
40
42
|
const data = await response.json();
|
|
41
43
|
const readings = data.readings || data;
|
|
@@ -82,7 +84,7 @@ function StatusPage({ statusData }) {
|
|
|
82
84
|
.replace(/[^a-z0-9\s-]/g, '') // Remove special characters
|
|
83
85
|
.replace(/\s+/g, '-') // Replace spaces with hyphens
|
|
84
86
|
.replace(/-+/g, '-'); // Replace multiple hyphens with single
|
|
85
|
-
const response = await fetch(
|
|
87
|
+
const response = await fetch(`${dataBaseUrl}/systems/${fileName}.json`);
|
|
86
88
|
if (response.ok) {
|
|
87
89
|
const data = await response.json();
|
|
88
90
|
if (data.history && data.history.length > 0) {
|
|
@@ -99,7 +101,7 @@ function StatusPage({ statusData }) {
|
|
|
99
101
|
if (items.length > 0) {
|
|
100
102
|
loadSystemFiles();
|
|
101
103
|
}
|
|
102
|
-
}, [items, showPerformanceMetrics]);
|
|
104
|
+
}, [items, showPerformanceMetrics, fetchUrl]);
|
|
103
105
|
// Handle system card click to toggle performance metrics
|
|
104
106
|
const handleSystemClick = (systemName) => {
|
|
105
107
|
if (!showPerformanceMetrics || systemFiles.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/UptimeStatusPage/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,UAAU,EAAuD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAcD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAC,UAAU,EAAC,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/UptimeStatusPage/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,UAAU,EAAuD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAcD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAC,UAAU,EAAC,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAyPzE"}
|
|
@@ -30,7 +30,7 @@ const DEFAULT_CONFIG = {
|
|
|
30
30
|
],
|
|
31
31
|
};
|
|
32
32
|
function UptimeStatusPage({ statusData }) {
|
|
33
|
-
const { items = [], systems = [], incidents = [], maintenance = [], overallStatus = 'operational', useDemoData = false, } = statusData || {};
|
|
33
|
+
const { items = [], systems = [], incidents = [], maintenance = [], overallStatus = 'operational', useDemoData = false, fetchUrl, } = statusData || {};
|
|
34
34
|
// State for system files with historical data
|
|
35
35
|
const [systemFiles, setSystemFiles] = (0, react_1.useState)([]);
|
|
36
36
|
// Get config from statusData or use default
|
|
@@ -48,11 +48,13 @@ function UptimeStatusPage({ statusData }) {
|
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
// Otherwise try to load from status-data
|
|
51
|
+
// Use fetchUrl if configured for runtime data fetching (e.g., from raw.githubusercontent.com)
|
|
52
|
+
const dataBaseUrl = fetchUrl || '/status-data';
|
|
51
53
|
async function loadSystemFiles() {
|
|
52
54
|
const files = [];
|
|
53
55
|
try {
|
|
54
|
-
console.log('[UptimeStatusPage] Fetching /
|
|
55
|
-
const response = await fetch(
|
|
56
|
+
console.log('[UptimeStatusPage] Fetching', `${dataBaseUrl}/current.json`);
|
|
57
|
+
const response = await fetch(`${dataBaseUrl}/current.json`);
|
|
56
58
|
if (response.ok) {
|
|
57
59
|
const data = await response.json();
|
|
58
60
|
const readings = data.readings || data; // Support both {readings: [...]} and direct array
|
|
@@ -98,7 +100,7 @@ function UptimeStatusPage({ statusData }) {
|
|
|
98
100
|
if (statusItems.length > 0) {
|
|
99
101
|
loadSystemFiles();
|
|
100
102
|
}
|
|
101
|
-
}, [statusItems, systems]);
|
|
103
|
+
}, [statusItems, systems, fetchUrl]);
|
|
102
104
|
// Default section titles
|
|
103
105
|
const defaultTitles = {
|
|
104
106
|
'active-incidents': '🚨 Active Incidents',
|
package/lib/types.d.ts
CHANGED
|
@@ -293,6 +293,13 @@ export interface PluginOptions {
|
|
|
293
293
|
* Alternative to using GitHub issues for monitoring configuration
|
|
294
294
|
*/
|
|
295
295
|
sites?: SiteConfig[];
|
|
296
|
+
/**
|
|
297
|
+
* URL for runtime status data fetching
|
|
298
|
+
* When set, theme components will fetch live data from this URL instead of relative paths.
|
|
299
|
+
* Example: 'https://raw.githubusercontent.com/owner/repo/status-data'
|
|
300
|
+
* This enables live status updates without requiring site rebuilds.
|
|
301
|
+
*/
|
|
302
|
+
fetchUrl?: string;
|
|
296
303
|
}
|
|
297
304
|
export interface StatusData {
|
|
298
305
|
items: StatusItem[];
|
|
@@ -305,6 +312,10 @@ export interface StatusData {
|
|
|
305
312
|
useDemoData?: boolean;
|
|
306
313
|
systems?: StatusItem[];
|
|
307
314
|
overallStatus?: 'operational' | 'degraded' | 'outage' | 'maintenance';
|
|
315
|
+
/**
|
|
316
|
+
* URL for runtime status data fetching (passed from plugin options)
|
|
317
|
+
*/
|
|
318
|
+
fetchUrl?: string;
|
|
308
319
|
}
|
|
309
320
|
export interface UptimeStatusSection {
|
|
310
321
|
id: 'active-incidents' | 'live-status' | 'charts' | 'scheduled-maintenance' | 'past-maintenance' | 'past-incidents';
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amiable-dev/docusaurus-plugin-stentorosaur",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "A Docusaurus plugin for displaying status monitoring dashboard powered by GitHub Issues and Actions, similar to Upptime",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "src/plugin-status.d.ts",
|
|
@@ -2,23 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
This directory contains GitHub Actions workflow templates for monitoring your services and updating your status page.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Architecture Overview
|
|
6
|
+
|
|
7
|
+
The optimized architecture decouples **data collection** from **site builds**, enabling 5-minute monitoring at low cost:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
11
|
+
│ DATA COLLECTION (every 5 min via monitor-systems.yml) │
|
|
12
|
+
│ ───────────────────────────────────────────────────────────── │
|
|
13
|
+
│ 1. Health checks → current.json, archives/ │
|
|
14
|
+
│ 2. Issue sync → incidents.json, maintenance.json │
|
|
15
|
+
│ 3. Commit to status-data branch │
|
|
16
|
+
│ 4. Critical incidents trigger immediate deployment │
|
|
17
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
18
|
+
↓
|
|
19
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
20
|
+
│ DATA DISPLAY (runtime fetch - $0 GitHub Actions cost) │
|
|
21
|
+
│ ───────────────────────────────────────────────────────────── │
|
|
22
|
+
│ Browser fetches current.json from raw.githubusercontent.com │
|
|
23
|
+
│ (Configure fetchUrl in plugin options for live data) │
|
|
24
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
25
|
+
↓
|
|
26
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ SITE BUILD (only on content changes to main) │
|
|
28
|
+
│ ───────────────────────────────────────────────────────────── │
|
|
29
|
+
│ Triggers: push to main, critical incidents, manual dispatch │
|
|
30
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
6
32
|
|
|
7
|
-
|
|
33
|
+
## Required Workflows
|
|
8
34
|
|
|
9
|
-
### 1. `monitor-systems.yml`
|
|
35
|
+
### 1. `monitor-systems.yml` - Status Monitor
|
|
10
36
|
|
|
11
|
-
|
|
37
|
+
**This single workflow handles all status monitoring needs:**
|
|
12
38
|
|
|
13
|
-
- **Schedule**: Every 5 minutes
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
|
|
39
|
+
- **Schedule**: Every 5 minutes (configurable)
|
|
40
|
+
- **Also triggers on**: Issue events (opened, closed, labeled, edited)
|
|
41
|
+
- **Functions**:
|
|
42
|
+
1. Health checks for all configured endpoints
|
|
43
|
+
2. Syncs GitHub Issues to incidents.json and maintenance.json
|
|
44
|
+
3. Creates/closes issues for automatic downtime detection
|
|
45
|
+
4. Sends notifications (if configured)
|
|
46
|
+
5. Triggers immediate deployment for critical incidents
|
|
18
47
|
|
|
19
48
|
**Configuration Required:**
|
|
20
49
|
|
|
21
|
-
1.
|
|
50
|
+
1. Create `.monitorrc.json` in your repository root:
|
|
22
51
|
|
|
23
52
|
```json
|
|
24
53
|
{
|
|
@@ -29,261 +58,128 @@ Monitors your endpoints and records response times using **sequential monitoring
|
|
|
29
58
|
}
|
|
30
59
|
```
|
|
31
60
|
|
|
32
|
-
2.
|
|
33
|
-
- Invalid URLs (like `null.example.com` or `localhost`) will always fail
|
|
34
|
-
- Private/internal URLs are not accessible from GitHub Actions runners
|
|
61
|
+
2. Ensure URLs are valid and publicly accessible
|
|
35
62
|
|
|
36
|
-
|
|
63
|
+
### 2. `deploy.yml` - Deployment
|
|
37
64
|
|
|
38
|
-
|
|
39
|
-
- ✅ **No race conditions** - Only one git push operation
|
|
40
|
-
- ✅ **No merge conflicts** - Single job eliminates concurrent operations
|
|
41
|
-
- ✅ **Scales reliably** - Works with 10+ systems without data loss
|
|
42
|
-
- ⚠️ **Trade-off**: ~5s per system (but guarantees 100% data capture)
|
|
65
|
+
Builds and deploys your status page.
|
|
43
66
|
|
|
44
|
-
|
|
67
|
+
**Triggers:**
|
|
68
|
+
- Push to `main` branch (code/content changes)
|
|
69
|
+
- `repository_dispatch: status-updated` (critical incidents)
|
|
70
|
+
- Manual `workflow_dispatch`
|
|
45
71
|
|
|
46
|
-
|
|
72
|
+
**Does NOT trigger on:**
|
|
73
|
+
- Monitoring workflow file changes (paths-ignore)
|
|
47
74
|
|
|
48
|
-
|
|
49
|
-
- On issue events (opened, closed, labeled, edited)
|
|
50
|
-
- Hourly schedule
|
|
51
|
-
- Manual workflow_dispatch
|
|
52
|
-
- **Creates**: `status-data/incidents.json` and `status-data/maintenance.json`
|
|
53
|
-
- **Action**:
|
|
54
|
-
- Fetches issues labeled with "status" and configured system labels
|
|
55
|
-
- Generates `incidents.json` from issues with `status` label
|
|
56
|
-
- Generates `maintenance.json` from issues with `maintenance` label
|
|
57
|
-
- Triggers `repository_dispatch` event for critical incidents (immediate deployment)
|
|
58
|
-
- **Environment**: Requires `GITHUB_TOKEN` (automatically provided by GitHub Actions)
|
|
59
|
-
- **CLI Command**: `npx stentorosaur-update-status --write-incidents --write-maintenance`
|
|
60
|
-
|
|
61
|
-
**Configuration Required:**
|
|
62
|
-
- Ensure your `docusaurus.config.js` has correct `owner` and `repo` settings
|
|
63
|
-
- Configure system labels in plugin options if using custom labels
|
|
64
|
-
|
|
65
|
-
**Smart Deployment (v0.4.13+):**
|
|
66
|
-
- Critical incidents trigger `repository_dispatch` → immediate deployment (~2 min)
|
|
67
|
-
- Non-critical incidents wait for hourly scheduled deployment
|
|
68
|
-
- Uses `[skip ci]` tag to avoid duplicate deployments
|
|
69
|
-
|
|
70
|
-
### 3. `deploy.yml` or `deploy-scheduled.yml` ⭐ REQUIRED (use BOTH)
|
|
71
|
-
|
|
72
|
-
Builds and deploys your status page with updated data.
|
|
73
|
-
|
|
74
|
-
**deploy.yml** - Immediate deployments:
|
|
75
|
-
- **Triggers**:
|
|
76
|
-
- Push to `main` branch (code changes)
|
|
77
|
-
- `repository_dispatch` event type `status-updated` (critical incidents)
|
|
78
|
-
- Manual `workflow_dispatch`
|
|
79
|
-
- **Path Filtering (v0.4.13+)**:
|
|
80
|
-
- Ignores `status-data/current.json` (monitoring data)
|
|
81
|
-
- Ignores `status-data/archives/**` (historical archives)
|
|
82
|
-
- **Result**: Critical incidents deploy within ~2 minutes
|
|
83
|
-
|
|
84
|
-
**deploy-scheduled.yml** - Scheduled deployments:
|
|
85
|
-
- **Triggers**: Hourly cron schedule (configurable)
|
|
86
|
-
- **Purpose**: Pick up non-critical incident updates and maintenance changes
|
|
87
|
-
- **Result**: Non-critical updates deploy within 1 hour
|
|
88
|
-
|
|
89
|
-
**Why Both?**
|
|
90
|
-
- `deploy.yml` provides instant response to critical incidents
|
|
91
|
-
- `deploy-scheduled.yml` ensures regular updates without excessive Actions usage
|
|
92
|
-
- Monitoring commits (every 5 min) don't trigger any deployments (paths-ignore)
|
|
93
|
-
|
|
94
|
-
**Recommended Setup:**
|
|
95
|
-
```bash
|
|
96
|
-
cp node_modules/@amiable-dev/docusaurus-plugin-stentorosaur/templates/workflows/deploy.yml .github/workflows/
|
|
97
|
-
cp node_modules/@amiable-dev/docusaurus-plugin-stentorosaur/templates/workflows/deploy-scheduled.yml .github/workflows/
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Optional Workflows
|
|
75
|
+
## Optional Workflow
|
|
101
76
|
|
|
102
77
|
### `compress-archives.yml` (Recommended)
|
|
103
78
|
|
|
104
|
-
Compresses old JSONL archive files to save space.
|
|
79
|
+
Compresses old JSONL archive files daily to save repository space.
|
|
105
80
|
|
|
106
|
-
- **Schedule**: Daily
|
|
107
|
-
- **Action**:
|
|
81
|
+
- **Schedule**: Daily at 00:05 UTC
|
|
82
|
+
- **Action**: Gzips yesterday's JSONL file
|
|
108
83
|
- **Benefit**: Reduces repository size over time
|
|
109
84
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
For
|
|
85
|
+
## Deleted Workflows (v0.15.0+)
|
|
86
|
+
|
|
87
|
+
These workflows are no longer needed and have been removed:
|
|
88
|
+
|
|
89
|
+
| Workflow | Reason |
|
|
90
|
+
|----------|--------|
|
|
91
|
+
| `status-update.yml` | Merged into `monitor-systems.yml` |
|
|
92
|
+
| `deploy-scheduled.yml` | Not needed with runtime data fetching |
|
|
93
|
+
| `calculate-metrics.yml` | Deprecated - metrics included in `current.json` |
|
|
94
|
+
|
|
95
|
+
## Runtime Data Fetching
|
|
96
|
+
|
|
97
|
+
For live status updates without rebuilding the site, configure `fetchUrl` in your plugin options:
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// docusaurus.config.js
|
|
101
|
+
plugins: [
|
|
102
|
+
[
|
|
103
|
+
'@amiable-dev/docusaurus-plugin-stentorosaur',
|
|
104
|
+
{
|
|
105
|
+
owner: 'your-org',
|
|
106
|
+
repo: 'your-repo',
|
|
107
|
+
entities: [...],
|
|
108
|
+
// Enable runtime fetch for live data
|
|
109
|
+
fetchUrl: 'https://raw.githubusercontent.com/your-org/your-repo/status-data',
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
],
|
|
113
|
+
```
|
|
123
114
|
|
|
124
|
-
|
|
115
|
+
With `fetchUrl` configured:
|
|
116
|
+
- Status page fetches live data on each page view
|
|
117
|
+
- No site rebuild needed for status updates
|
|
118
|
+
- 5-minute monitoring updates appear immediately
|
|
119
|
+
- Site only rebuilds for content changes or critical incidents
|
|
125
120
|
|
|
126
|
-
|
|
121
|
+
## Three-File Data Architecture
|
|
127
122
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
│ │ Check URLs │─────>│ Record to JSONL │─────>│ Rebuild current.json│ │
|
|
134
|
-
│ │(Sequential)│ │ (Append-only) │ │ (14-day window) │ │
|
|
135
|
-
│ └────────────┘ └─────────────────┘ └─────────────────────┘ │
|
|
136
|
-
│ │ │ │
|
|
137
|
-
│ v v │
|
|
138
|
-
│ archives/YYYY/MM/ status-data/ │
|
|
139
|
-
│ history-YYYY-MM-DD.jsonl current.json │
|
|
140
|
-
│ │
|
|
141
|
-
│ ┌──────────────────────────────────────────────────────────────────┐ │
|
|
142
|
-
│ │ Git Commit: "Update monitoring data [skip ci]" │ │
|
|
143
|
-
│ │ → Does NOT trigger deployment (paths-ignore in deploy.yml) │ │
|
|
144
|
-
│ │ → If critical failure: Creates GitHub Issue │ │
|
|
145
|
-
│ └──────────────────────────────────────────────────────────────────┘ │
|
|
146
|
-
└──────────────────────────────────────────────────────────────────────────┘
|
|
147
|
-
|
|
148
|
-
┌──────────────────────────────────────────────────────────────────────────┐
|
|
149
|
-
│ INCIDENT TRACKING (On issue events + hourly): status-update.yml │
|
|
150
|
-
├──────────────────────────────────────────────────────────────────────────┤
|
|
151
|
-
│ ┌─────────────────┐ ┌──────────────────────────────────────┐ │
|
|
152
|
-
│ │ Fetch GH Issues │─────>│ Generate incidents.json │ │
|
|
153
|
-
│ │ (status labels) │ │ Generate maintenance.json │ │
|
|
154
|
-
│ └─────────────────┘ └──────────────────────────────────────┘ │
|
|
155
|
-
│ │ │
|
|
156
|
-
│ v │
|
|
157
|
-
│ status-data/ │
|
|
158
|
-
│ ├─ incidents.json │
|
|
159
|
-
│ └─ maintenance.json │
|
|
160
|
-
│ │
|
|
161
|
-
│ ┌──────────────────────────────────────────────────────────────────┐ │
|
|
162
|
-
│ │ Git Commit: "Update status data [skip ci]" │ │
|
|
163
|
-
│ │ → If CRITICAL incident: Trigger repository_dispatch │ │
|
|
164
|
-
│ │ → deploy.yml runs IMMEDIATELY (~2 min) │ │
|
|
165
|
-
│ │ → If non-critical: Wait for hourly deploy-scheduled.yml │ │
|
|
166
|
-
│ └──────────────────────────────────────────────────────────────────┘ │
|
|
167
|
-
└──────────────────────────────────────────────────────────────────────────┘
|
|
168
|
-
|
|
169
|
-
┌──────────────────────────────────────────────────────────────────────────┐
|
|
170
|
-
│ DEPLOYMENT: deploy.yml + deploy-scheduled.yml │
|
|
171
|
-
├──────────────────────────────────────────────────────────────────────────┤
|
|
172
|
-
│ deploy.yml (IMMEDIATE): │
|
|
173
|
-
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
|
174
|
-
│ │ Triggers: │ │
|
|
175
|
-
│ │ • Push to main (code changes) │ │
|
|
176
|
-
│ │ • repository_dispatch: status-updated (critical incidents) │ │
|
|
177
|
-
│ │ • workflow_dispatch (manual) │ │
|
|
178
|
-
│ │ │ │
|
|
179
|
-
│ │ Filters (paths-ignore): │ │
|
|
180
|
-
│ │ • status-data/current.json → IGNORED │ │
|
|
181
|
-
│ │ • status-data/archives/** → IGNORED │ │
|
|
182
|
-
│ └─────────────────────────────────────────────────────────────────┘ │
|
|
183
|
-
│ │
|
|
184
|
-
│ deploy-scheduled.yml (HOURLY): │
|
|
185
|
-
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
|
186
|
-
│ │ Triggers: Hourly cron schedule │ │
|
|
187
|
-
│ │ Purpose: Pick up non-critical updates │ │
|
|
188
|
-
│ └─────────────────────────────────────────────────────────────────┘ │
|
|
189
|
-
│ │
|
|
190
|
-
│ ┌───────────┐ ┌─────────────────────┐ ┌──────────────┐ │
|
|
191
|
-
│ │ Build Site│────>│ Read all 3 files: │────>│ Deploy Pages │ │
|
|
192
|
-
│ └───────────┘ │ • current.json │ └──────────────┘ │
|
|
193
|
-
│ │ • incidents.json │ │
|
|
194
|
-
│ │ • maintenance.json │ │
|
|
195
|
-
│ └─────────────────────┘ │
|
|
196
|
-
└──────────────────────────────────────────────────────────────────────────┘
|
|
197
|
-
```
|
|
123
|
+
| File | Purpose | Updated By | Frequency |
|
|
124
|
+
|------|---------|------------|-----------|
|
|
125
|
+
| `current.json` | Time-series monitoring data (14-day window) | Health checks | Every 5 min |
|
|
126
|
+
| `incidents.json` | Active/resolved incidents from GitHub Issues | Issue sync | On change + 5 min |
|
|
127
|
+
| `maintenance.json` | Scheduled maintenance windows | Issue sync | On change + 5 min |
|
|
198
128
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
The plugin uses three separate data files for optimal performance and smart deployments:
|
|
129
|
+
## Setup Checklist
|
|
202
130
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
131
|
+
1. [ ] Copy workflow files to `.github/workflows/`:
|
|
132
|
+
```bash
|
|
133
|
+
mkdir -p .github/workflows
|
|
134
|
+
cp node_modules/@amiable-dev/docusaurus-plugin-stentorosaur/templates/workflows/monitor-systems.yml .github/workflows/
|
|
135
|
+
cp node_modules/@amiable-dev/docusaurus-plugin-stentorosaur/templates/workflows/deploy.yml .github/workflows/
|
|
136
|
+
cp node_modules/@amiable-dev/docusaurus-plugin-stentorosaur/templates/workflows/compress-archives.yml .github/workflows/
|
|
137
|
+
```
|
|
208
138
|
|
|
209
|
-
|
|
210
|
-
- 🚨 **Critical incidents** → `repository_dispatch` → deploy.yml → **~2 minute deployment**
|
|
211
|
-
- 📋 **Non-critical incidents** → Waits for deploy-scheduled.yml → **~1 hour deployment**
|
|
212
|
-
- 📊 **Monitoring data** → paths-ignore filter → **No deployment triggered**
|
|
139
|
+
2. [ ] Create `.monitorrc.json` with your endpoints
|
|
213
140
|
|
|
214
|
-
|
|
141
|
+
3. [ ] Create the orphaned status-data branch:
|
|
142
|
+
```bash
|
|
143
|
+
npm run setup-status-branch
|
|
144
|
+
```
|
|
215
145
|
|
|
216
|
-
|
|
217
|
-
|-------|----------|---------------|------------|---------|
|
|
218
|
-
| Endpoint check (every 5m) | `monitor-systems.yml` | `current.json` | None | N/A |
|
|
219
|
-
| Critical endpoint down | `monitor-systems.yml` | `current.json` + creates Issue | Via `status-update.yml` → `deploy.yml` | ~2 min |
|
|
220
|
-
| Issue opened/closed | `status-update.yml` | `incidents.json`, `maintenance.json` | `deploy.yml` if critical, else hourly | 2 min / 1 hour |
|
|
221
|
-
| Hourly check | `status-update.yml` | `incidents.json`, `maintenance.json` | `deploy-scheduled.yml` | 1 hour |
|
|
222
|
-
| Code push to main | N/A | N/A | `deploy.yml` | ~5 min |
|
|
146
|
+
4. [ ] Configure `fetchUrl` in `docusaurus.config.js` for live data
|
|
223
147
|
|
|
224
|
-
|
|
148
|
+
5. [ ] Commit and push workflows
|
|
225
149
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
- [ ] Copy workflow files to `.github/workflows/`
|
|
229
|
-
- [ ] Create `.monitorrc.json` in repository root with your endpoints
|
|
230
|
-
- [ ] Edit `monitor-systems.yml` if needed (defaults work for most cases)
|
|
231
|
-
- [ ] Verify URLs are publicly accessible (test in browser or with `curl`)
|
|
232
|
-
- [ ] Ensure `docusaurus.config.js` has correct repo settings
|
|
233
|
-
- [ ] Copy BOTH deployment workflows: `deploy.yml` AND `deploy-scheduled.yml`
|
|
234
|
-
- [ ] Configure `entities` in plugin config (v0.11.0+) to define tracked items
|
|
235
|
-
- [ ] (Optional) Enable `compress-archives.yml` to save space
|
|
236
|
-
- [ ] Delete or disable `calculate-metrics.yml` (deprecated, not needed)
|
|
237
|
-
- [ ] Commit and push workflows
|
|
238
|
-
- [ ] Verify first workflow run succeeds
|
|
239
|
-
- [ ] Check that `status-data/` is being populated with 3 files:
|
|
240
|
-
- [ ] `current.json` (from monitor-systems.yml)
|
|
241
|
-
- [ ] `incidents.json` (from status-update.yml)
|
|
242
|
-
- [ ] `maintenance.json` (from status-update.yml)
|
|
243
|
-
- [ ] Ensure `status-data/` is NOT in `.gitignore`
|
|
244
|
-
- [ ] Test critical incident flow:
|
|
245
|
-
- [ ] Create issue with `status` + `critical` + system label
|
|
246
|
-
- [ ] Verify `repository_dispatch` triggers immediate deployment
|
|
247
|
-
- [ ] Check deployment completes within ~2 minutes
|
|
150
|
+
6. [ ] Verify first workflow run succeeds
|
|
248
151
|
|
|
249
152
|
## Troubleshooting
|
|
250
153
|
|
|
251
154
|
### "Website is down" false alerts
|
|
155
|
+
- Check that URLs are valid and publicly accessible
|
|
156
|
+
- Invalid URLs (like `localhost`) always fail from GitHub Actions
|
|
252
157
|
|
|
253
|
-
|
|
254
|
-
- Invalid URLs (like `null.example.com` or `localhost`) will always fail
|
|
255
|
-
- Private/internal URLs are not accessible from GitHub Actions runners
|
|
256
|
-
|
|
257
|
-
### No data appearing on status page
|
|
258
|
-
|
|
158
|
+
### No data on status page
|
|
259
159
|
- Verify workflows are running (check Actions tab)
|
|
260
|
-
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
263
|
-
- Ensure deployment workflow includes status data in build
|
|
264
|
-
- Check browser console for fetch errors
|
|
160
|
+
- Ensure `status-data` branch exists
|
|
161
|
+
- Check that `fetchUrl` is configured correctly
|
|
162
|
+
- Look for fetch errors in browser console
|
|
265
163
|
|
|
266
|
-
###
|
|
164
|
+
### Stale data
|
|
165
|
+
- If using runtime fetch: Check network tab for successful JSON fetch
|
|
166
|
+
- Verify monitoring commits are appearing on status-data branch
|
|
167
|
+
- Ensure no caching issues with raw.githubusercontent.com
|
|
267
168
|
|
|
268
|
-
|
|
269
|
-
- Check that GitHub Issues have correct labels
|
|
270
|
-
- Ensure `GITHUB_TOKEN` is available (should be automatic)
|
|
169
|
+
## Migration from Previous Versions
|
|
271
170
|
|
|
272
|
-
|
|
171
|
+
If upgrading from v0.14.x or earlier:
|
|
273
172
|
|
|
274
|
-
|
|
275
|
-
-
|
|
276
|
-
-
|
|
173
|
+
1. Delete deprecated workflow files from your `.github/workflows/`:
|
|
174
|
+
- `status-update.yml`
|
|
175
|
+
- `deploy-scheduled.yml`
|
|
176
|
+
- `calculate-metrics.yml`
|
|
277
177
|
|
|
278
|
-
|
|
178
|
+
2. Copy the new consolidated `monitor-systems.yml`
|
|
279
179
|
|
|
280
|
-
|
|
180
|
+
3. Add `fetchUrl` to plugin config for live data
|
|
281
181
|
|
|
282
|
-
|
|
283
|
-
2. Run `monitor-systems.yml` to start collecting new format data
|
|
284
|
-
3. Compare data accuracy over a few days
|
|
285
|
-
4. Once satisfied, disable `calculate-metrics.yml`
|
|
286
|
-
5. Clean up old `systems/*.json` files
|
|
182
|
+
4. Remove hourly deploy schedule (no longer needed)
|
|
287
183
|
|
|
288
184
|
## Need Help?
|
|
289
185
|
|