1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
|
# This is the main configuration file for Netlify CMS.
# Netlify CMS is used as the admin panel for cState.
#
# While some settings here can be kept as is, you may
# want to change some for a more customized solution.
#
# You can look at what each option does and how to
# toggle between them on the Netlify CMS repo docs:
#
# https://github.com/netlify/netlify-cms/blob/master/docs/quick-start.md
backend:
name: git-gateway
media_folder: "static/img"
public_folder: "/img"
site_url: ../
logo_url: https://raw.githubusercontent.com/cstate/cstate/master/images/cstate-logo-bg.svg
# Do not change this unless you know what you are doing!
collections:
- name: "issues"
label: "Incidents"
label_singular: "Incident"
description: "📚 Welcome to the cState admin panel! Here you can create new incidents or manage existing ones. Go ahead and give it a shot."
folder: "content/issues"
create: true
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
view_filters:
- label: Active (unresolved) issues
field: resolved
pattern: false
- label: 'Resolved issues'
field: resolved
pattern: true
- label: 'Informational posts'
field: informational
pattern: true
- label: Drafts
field: draft
pattern: true
- label: Published (not a draft)
field: draft
pattern: false
- label: "High severity (down)"
field: severity
pattern: 'down'
- label: "Medium severity (disrupted)"
field: severity
pattern: 'disrupted'
- label: "Low severity (announcement)"
field: severity
pattern: 'announcement'
fields:
- {label: "Mark as incident", name: "section", widget: "hidden", default: "issue"}
- {label: "Title", name: "title", widget: "string"}
- {label: "Start date & time (your time) ⌚", name: "date", widget: "datetime"}
- {label: "Mark as resolved ✔", name: "resolved", widget: "boolean", required: false, default: false}
- {label: "Hide this from the site (make it a draft) 👀", name: "draft", widget: "boolean", required: false, default: false}
- {label: "Mark as informational ℹ", name: "informational", widget: "boolean", required: false, default: false}
- {label: "End date & time (your time) ⌛", name: "resolvedWhen", widget: "datetime", required: false}
- label: "Affected systems (use exact name, separated by commas) 🧐"
name: "affected"
widget: "list"
required: false
- label: "Severity ⚠"
name: "severity"
widget: "select"
options:
- { label: "High (Down) ◼ ", value: "down" }
- { label: "Medium (Disrupted) ▲", value: "disrupted" }
- { label: "Low (Announcement) ◆", value: "notice" }
- label: "Markdown body (sequence of events, description, post-mortem)"
name: "body"
widget: "markdown"
default: "*Investigating* - We are investigating a potential issue that might affect the uptime of one our of services. We are sorry for any inconvenience this may cause you. This incident post will be updated once we have more information."
- name: "pages"
label: "Pages"
label_singular: "Page"
description: "📜 Create and manage pages (not connected or related to issues). Good for things like about pages, SLAs, ways of contact, and so forth."
folder: "content/pages"
create: true
slug: "{{slug}}"
view_filters:
- label: Drafts
field: draft
pattern: true
- label: Published (not a draft)
field: draft
pattern: false
fields:
- {label: "Title", name: "title", widget: "string"}
- {label: "Hide this from the site (make it a draft) 👀", name: "draft", widget: "boolean", required: false, default: false}
- {label: "Description for SEO and social media", name: "description", widget: "string", required: false}
- label: "Markdown (or HTML) body"
name: "body"
widget: "markdown"
- name: "settings"
label: "Settings"
description: "⚠ Please be warned that by editing settings from Netlify CMS you are _OVERWRITING_ what you have in the original Git repository, meaning any CURRENT SETTINGS OR COMMENTS left will be deleted."
delete: false # Prevent users from deleting documents in this collection
editor:
preview: false
files:
- name: "general"
label: "⚙ Configuration File"
file: "config.yml"
fields:
# MAIN
- label: 'Site title'
hint: 'What is your status page called? Shows up in the browser bar and meta.'
name: 'title'
widget: 'string'
- label: 'Build future posts'
name: 'buildFuture'
widget: 'boolean'
hint: 'Should posts, which have a publish date from the future, be built? Useful for sharing upcoming maintenance, etc.'
required: false
default: true
- label: 'Site display language'
hint: 'Docs: https://github.com/cstate/cstate/wiki/Translations#available-translations'
name: 'defaultContentLanguage'
widget: 'select'
default: 'en'
options:
- { label: "🇺🇸 English (default)", value: "en" }
- { label: "🇱🇹 Lietuviškai (official)", value: "lt" }
- { label: "🇹🇷 Turkish", value: "tr" }
- { label: "🇩🇪 Deutsch", value: "de" }
- { label: "🇳🇱 Dutch", value: "nl" }
- { label: "🇫🇷 French", value: "fr" }
- { label: "🇮🇹 Italiano", value: "it" }
- { label: "🇧🇷 Portuguese", value: "pt"}
- { label: "🇲🇰 Македонски", value: "mk" }
- { label: "🏳️ Tagalog", value: "tl" }
- label: 'Site language in code for html[lang]'
hint: 'Use the ISO 639-1 defined abbreviations. Examples: en, lt, de. Fully explained here: https://github.com/cstate/cstate/wiki/Customization#changing-site-language'
name: 'languageCode'
widget: 'string'
default: 'en'
- label: 'Base URL / Hostname'
name: 'baseURL'
widget: 'string'
hint: 'Where is the site hosted? Hostname (and path) to the root. Prior to version 3, a slash was used which now works in local testing, but breaks certain features of cState like RSS feeds, so a correct example for production is: https://cstate.mnts.lt'
default: '/'
# PARAMS
- label: "Params"
name: "params"
widget: "object"
fields:
# Components
- label: "System components"
name: "systems"
widget: "list"
allow_add: true
fields:
- {label: "Name", name: "name", widget: string}
- {label: "Category", hint: "All systems need a category. For more, read the migration docs: https://github.com/cstate/cstate/wiki/Usage#v3-to-v4", name: "category", widget: string}
- {label: "Description", name: "description", widget: string, required: false}
- {label: "Partial", hint: "Custom HTML feature: https://github.com/cstate/cstate/wiki/Customization#custom-html", name: "partial", widget: string, required: false}
# Categories
- label: "Categories"
name: "categories"
widget: "list"
allow_add: true
fields:
- {label: "Name", name: "name", widget: string}
- {label: "Description", name: "description", widget: string, required: false}
- {label: "Should this category be open by default", name: "closed", widget: "boolean", required: false}
- {label: "Should the name of this category be shown? If you want to create the appearance of an Uncategorized category, enable this.", name: "untitled", widget: "boolean", required: false}
# Tabs
- label: "Tabs"
hint: 'You can add extra tabs below the main homepage summary, for example, to external sites, monitoring services, as shown in the example below. Try Uptime Robot!'
name: "customTabs"
widget: "list"
allow_add: true
fields:
- {label: "Name", name: "name", widget: string}
- {label: "Link", name: "link", widget: string}
# Dates
- label: 'Show last modified date at bottom of issues'
name: 'enableLastMod'
widget: 'boolean'
hint: 'Experimental feature shows when changes occured based on Git info. Read the wiki for more: https://github.com/cstate/cstate/wiki/Customization#time'
required: false
default: false
- label: 'Use relative time (issue began x min ago)'
name: 'useRelativeTime'
widget: 'boolean'
hint: 'IMPORTANT: In the frontmatter, the dates MUST be in the UTC time zone. If you use Netlify CMS, the CMS picks UTC time by default, so no need to worry. However, there may be very inaccurate times, if you manually define non-UTC time in your issues. Read the wiki for more: https://github.com/cstate/cstate/wiki/Customization#time'
required: false
default: true
- label: 'Skip seconds in relative time calculations?'
name: 'skipSeconds'
widget: 'boolean'
hint: 'For users of relative time. With option ON (true): "Last checked <1 min ago". With option OFF (false; default): "Last checked 20s ago". Read the wiki for more: https://github.com/cstate/cstate/wiki/Customization#skip-seconds-v50'
required: false
default: false
- label: 'Long date format'
name: 'dateFormat'
widget: 'string'
hint: 'Default: January 2, 2006 at 3:04 PM UTC. Docs: https://github.com/cstate/cstate/wiki/Customization#changing-date-formats-v30'
default: 'January 2, 2006 at 3:04 PM UTC'
- label: 'Short date format'
name: 'shortDateFormat'
widget: 'string'
hint: 'Default: 15:04 UTC — Jan 2. Docs: https://github.com/cstate/cstate/wiki/Customization#changing-date-formats-v30'
default: '15:04 UTC — Jan 2'
# Design site title color toggle in v4.0.1
- label: 'Site title text color'
hint: 'This is irrelevant, if you use a logo in your header.'
name: 'headerTextColor'
widget: 'select'
default: 'white'
options:
- { label: "Black", value: "black" }
- { label: "White", value: "white" }
# Design toggles
- label: 'Use large header design'
name: 'useLargeHeaderDesign'
widget: 'boolean'
hint: 'What header design should we use? https://github.com/cstate/cstate/wiki/Customization#changing-header'
required: false
default: false
- label: 'Show logo'
name: 'useLogo'
widget: 'boolean'
required: false
default: true
- label: 'Disable dark mode'
hint: 'If your OS and browser supports prefers-color-scheme and the user opted into a dark mode, the status page will be darker. Some color choices may be overriden.'
name: 'disableDarkMode'
widget: 'boolean'
required: false
default: false
- label: 'Logo image'
hint: 'Upload your logo here. If the logo option is switched off, this will not show.'
name: 'logo'
widget: 'image'
# Description
- label: 'Site description'
hint: 'This is the description that is shown on the footer and meta tags.'
name: 'description'
widget: 'text'
default: 'We continuously monitor the status of our services and if there are any interruptions, a note will be posted here.'
# Incidents per page
- label: 'Incident posts shown in one page'
name: 'incidentPostsPerPage'
hint: ''
widget: 'number'
valueType: 'int'
min: 1
max: 100
default: 10
# Incidents history
- label: 'Should the incident history be hidden?'
name: 'disableIncidentHistory'
hint: 'By disabling the incident history, you also disable the RSS feed. To ensure no incidents are shown, you should delete them after they are resolved. This option overrides any other options that tailor your incident history’s look.'
widget: 'boolean'
default: false
# Incidents view format
- label: 'Should the incident history be sorted by year or month?'
name: 'incidentHistoryFormat'
hint: 'Enabling sorting disables pagination. More: https://github.com/cstate/cstate/wiki/Customization#enable-sorting--archives-by-year-or-month-v40'
widget: 'select'
options:
- { label: "Show by year", value: "yearly" }
- { label: "Show by month", value: "monthly" }
- { label: "No sorting; enable pagination", value: "none" }
# Brand color
- label: 'Header: always keep brand color the same'
name: 'alwaysKeepBrandColor'
hint: 'You may choose whether the brand color should stay unchanged once there are disruptions or outages on the header.'
widget: 'boolean'
default: true
# Colors
- label: 'Site HEX color: Brand'
hint: 'Use any color type, even rgb() works. We recommend HEX: #123456. Default: #0a0c0f'
name: 'brand'
widget: 'string'
default: '#0a0c0f'
- label: 'Site HEX color: Operational / OK'
hint: 'Use any color type, even rgb() works. We recommend HEX: #123456. Default: #008000'
name: 'ok'
widget: 'string'
default: '#008000'
- label: 'Site HEX color: Disrupted'
hint: 'Use any color type, even rgb() works. We recommend HEX: #123456. Default: #cc4400'
name: 'disrupted'
widget: 'string'
default: '#cc4400'
- label: 'Site HEX color: Down / Offline / Major'
hint: 'Use any color type, even rgb() works. We recommend HEX: #123456. Default: #e60000'
name: 'down'
widget: 'string'
default: '#e60000'
- label: 'Site HEX color: Notice'
hint: 'Use any color type, even rgb() works. We recommend HEX: #123456. Default: #24478f'
name: 'notice'
widget: 'string'
default: '#24478f'
# Google Analytics
- label: 'Google Analytics tracking code'
hint: 'By default, cState does not use Google Analytics. If you choose to use it, you may change the placeholder code below to your own and thereby enable the tracking service. If you set the value back to UA-00000000-1, the code will once again be removed.'
name: 'googleAnalytics'
widget: 'string'
default: 'UA-00000000-1'
# Enable Custom HTML
- label: 'Enable custom HTML'
name: 'enableCustomHTML'
widget: 'boolean'
default: 'false'
# REQUIRED BUT HIDDEN
- label: 'theme'
name: 'theme'
widget: 'hidden'
default: 'cstate'
- label: 'preserveTaxonomyNames'
name: 'preserveTaxonomyNames'
widget: 'hidden'
default: 'true'
- label: "taxonomies"
name: taxonomies
widget: "hidden"
fields:
- {label: "affected", name: "affected", widget: "hidden", default: "affected"}
- label: "Outputs (Do not touch!)"
name: outputs
widget: "hidden"
fields:
- label: "page"
name: page
widget: "list"
allow_add: false
default: ['html', 'json']
- label: "section"
name: section
widget: "list"
allow_add: false
default: ['html', 'json', 'rss']
- label: "home"
name: home
widget: "list"
allow_add: false
default: ['html', 'json', 'rss', 'svg']
- label: "term"
name: term
widget: "list"
allow_add: false
default: ['html', 'json', 'rss']
- label: "Output formats (Do not touch!)"
name: outputFormats
widget: "hidden"
fields:
- label: "svg"
name: svg
fields:
- label: "isPlainText"
name: isPlainText
widget: "boolean"
default: true
- label: "mediaType"
name: mediaType
default: "image/svg+xml"
- label: 'Enable Git info'
name: 'enableGitInfo'
widget: 'hidden'
hint: 'Docs: https://github.com/cstate/cstate/wiki/Customization#time'
required: false
default: true
|