Ghost/core/server/data/schema/default-settings.json
Naz 49ba26373d 🏗 Added "labs" setting enabling feature flags
refs https://github.com/TryGhost/Team/issues/757
refs https://github.com/TryGhost/Team/issues/332
refs ea6d656457

- We have a need a quick way to add features behind flags. The old way of "labs" is the quickest way to achieve this. It has ready tooling around it and well understood pitfalls. This change reintroduces "labs" group & key in settings table in the same shape it used to be (see reffed commit)
- Next step will be introducing very basic guard rails to protect from pitfalls previous implementation of "labs" had. This will include an allowlist based input validation for lab's object's data
-  The labs being an "object" type is an EXCEPTION. Even though it's an antipattern we aim to move away from, for now it's the lowest impact solution that will unblock the use of flags in the system. A proper solution will come at some point.
2021-06-08 02:18:17 +12:00

522 lines
14 KiB
JSON

{
"core": {
"db_hash": {
"defaultValue": null,
"type": "string"
},
"routes_hash": {
"defaultValue": null,
"type": "string"
},
"next_update_check": {
"defaultValue": null,
"type": "number"
},
"notifications": {
"defaultValue": "[]",
"type": "array"
},
"session_secret": {
"defaultValue": null,
"type": "string"
},
"theme_session_secret": {
"defaultValue": null,
"type": "string"
},
"ghost_public_key": {
"defaultValue": null,
"type": "string"
},
"ghost_private_key": {
"defaultValue": null,
"type": "string"
},
"members_public_key": {
"defaultValue": null,
"type": "string"
},
"members_private_key": {
"defaultValue": null,
"type": "string"
},
"members_email_auth_secret": {
"defaultValue": null,
"type": "string"
},
"members_stripe_webhook_id": {
"defaultValue": null,
"type": "string"
},
"members_stripe_webhook_secret": {
"defaultValue": null,
"type": "string"
}
},
"site": {
"title": {
"defaultValue": "Ghost",
"validations": {
"isLength": {
"max": 150
}
},
"flags": "PUBLIC",
"type": "string"
},
"description": {
"defaultValue": "Thoughts, stories and ideas",
"validations": {
"isLength": {
"max": 200
}
},
"flags": "PUBLIC",
"type": "string"
},
"logo": {
"defaultValue": "",
"type": "string"
},
"cover_image": {
"defaultValue": "https://static.ghost.org/v4.0.0/images/publication-cover.jpg",
"type": "string"
},
"icon": {
"defaultValue": "",
"type": "string"
},
"accent_color": {
"defaultValue": "#FF1A75",
"flags": "PUBLIC",
"validations": {
"isEmpty": false
},
"type": "string"
},
"lang": {
"defaultValue": "en",
"validations": {
"isEmpty": false
},
"type": "string"
},
"timezone": {
"defaultValue": "Etc/UTC",
"validations": {
"isTimezone": true,
"isEmpty": false
},
"type": "string"
},
"codeinjection_head": {
"defaultValue": "",
"type": "string"
},
"codeinjection_foot": {
"defaultValue": "",
"type": "string"
},
"facebook": {
"defaultValue": "ghost",
"type": "string"
},
"twitter": {
"defaultValue": "@ghost",
"type": "string"
},
"navigation": {
"defaultValue": "[{\"label\":\"Home\",\"url\":\"/\"},{\"label\":\"About\",\"url\":\"/about/\"},{\"label\":\"Collection\",\"url\":\"/tag/getting-started/\"},{\"label\":\"Author\",\"url\":\"/author/ghost/\"},{\"label\":\"Portal\",\"url\":\"/portal/\"}]",
"type": "array"
},
"secondary_navigation": {
"defaultValue": "[{\"label\":\"Data & privacy\",\"url\":\"/privacy/\"},{\"label\":\"Contact\",\"url\":\"/contact/\"},{\"label\":\"Contribute →\",\"url\":\"/contribute/\"}]",
"type": "array"
},
"meta_title": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 300
}
},
"type": "string"
},
"meta_description": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 500
}
},
"type": "string"
},
"og_image": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 2000
}
},
"type": "string"
},
"og_title": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 300
}
},
"type": "string"
},
"og_description": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 300
}
},
"type": "string"
},
"twitter_image": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 2000
}
},
"type": "string"
},
"twitter_title": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 300
}
},
"type": "string"
},
"twitter_description": {
"defaultValue": null,
"validations": {
"isLength": {
"max": 300
}
},
"type": "string"
}
},
"theme": {
"active_theme": {
"defaultValue": "casper",
"flags": "RO",
"type": "string"
}
},
"private": {
"is_private": {
"defaultValue": "false",
"validations": {
"isIn": [["true", "false"]]
},
"type": "boolean"
},
"password": {
"defaultValue": "",
"type": "string"
},
"public_hash": {
"defaultValue": null,
"type": "string"
}
},
"members": {
"default_content_visibility": {
"defaultValue": "public",
"type": "string"
},
"members_signup_access": {
"defaultValue": "all",
"validations": {
"isEmpty": false,
"isIn": [["all", "invite", "none"]]
},
"type": "string"
},
"members_from_address": {
"defaultValue": "noreply",
"flags": "RO",
"type": "string"
},
"members_support_address": {
"defaultValue": "noreply",
"flags": "PUBLIC,RO",
"type": "string"
},
"members_reply_address": {
"defaultValue": "newsletter",
"validations": {
"isEmpty": false,
"isIn": [["newsletter", "support"]]
},
"type": "string"
},
"members_free_signup_redirect": {
"defaultValue": "/",
"type": "string"
},
"members_paid_signup_redirect": {
"defaultValue": "/",
"type": "string"
},
"stripe_product_name": {
"defaultValue": "Ghost Subscription",
"type": "string"
},
"stripe_secret_key": {
"defaultValue": null,
"type": "string"
},
"stripe_publishable_key": {
"defaultValue": null,
"type": "string"
},
"stripe_plans": {
"defaultValue": "[]",
"type": "array"
},
"stripe_connect_publishable_key": {
"defaultValue": null,
"type": "string"
},
"stripe_connect_secret_key": {
"defaultValue": null,
"type": "string"
},
"stripe_connect_livemode": {
"defaultValue": null,
"type": "boolean"
},
"stripe_connect_display_name": {
"defaultValue": null,
"type": "string"
},
"stripe_connect_account_id": {
"defaultValue": null,
"type": "string"
},
"members_free_price_name": {
"defaultValue": "Free",
"type": "string"
},
"members_free_price_description": {
"defaultValue": "Free preview",
"type": "string"
},
"members_monthly_price_id": {
"defaultValue": null,
"type": "string"
},
"members_yearly_price_id": {
"defaultValue": null,
"type": "string"
}
},
"portal": {
"portal_name": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [["true", "false"]]
},
"type": "boolean"
},
"portal_button": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [["true", "false"]]
},
"type": "boolean"
},
"portal_plans": {
"defaultValue": "[\"free\"]",
"type": "array"
},
"portal_button_style": {
"defaultValue": "icon-and-text",
"validations": {
"isEmpty": false,
"isIn": [["text-only", "icon-and-text", "icon-only"]]
},
"type": "string"
},
"portal_button_icon": {
"defaultValue": null,
"type": "string"
},
"portal_button_signup_text": {
"defaultValue": "Subscribe",
"type": "string"
}
},
"email": {
"mailgun_domain": {
"defaultValue": null,
"type": "string"
},
"mailgun_api_key": {
"defaultValue": null,
"type": "string"
},
"mailgun_base_url": {
"defaultValue": null,
"type": "string"
},
"email_track_opens": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [["true", "false"]]
},
"type": "boolean"
}
},
"amp": {
"amp": {
"defaultValue": "true",
"validations": {
"isIn": [["true", "false"]]
},
"type": "boolean"
},
"amp_gtag_id": {
"defaultValue": null,
"type": "string"
}
},
"firstpromoter": {
"firstpromoter": {
"defaultValue": "false",
"validations": {
"isIn": [
[
"true",
"false"
]
]
},
"type": "boolean"
},
"firstpromoter_id": {
"defaultValue": null,
"type": "string"
}
},
"labs": {
"labs": {
"defaultValue": "{}",
"type": "object"
}
},
"slack": {
"slack_url": {
"defaultValue": "",
"type": "string"
},
"slack_username": {
"defaultValue": "Ghost",
"type": "string"
}
},
"unsplash": {
"unsplash": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [["true", "false"]]
},
"type": "boolean"
}
},
"views": {
"shared_views": {
"defaultValue": "[]",
"type": "array"
}
},
"newsletter": {
"newsletter_show_badge": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [
[
"true",
"false"
]
]
},
"type": "boolean"
},
"newsletter_show_header": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [
[
"true",
"false"
]
]
},
"type": "boolean"
},
"newsletter_body_font_category": {
"defaultValue": "sans_serif",
"validations": {
"isEmpty": false,
"isIn": [
[
"serif",
"sans_serif"
]
]
},
"type": "string"
},
"newsletter_footer_content": {
"defaultValue": "",
"type": "string"
}
},
"oauth": {
"oauth_client_id" : {
"defaultValue": null,
"type": "string"
},
"oauth_client_secret" : {
"defaultValue": null,
"type": "string"
}
},
"editor": {
"editor_default_email_recipients": {
"defaultValue": "visibility",
"type": "string",
"validations": {
"isEmpty": false,
"isIn": [[
"disabled",
"visibility",
"filter"
]]
}
},
"editor_default_email_recipients_filter": {
"defaultValue": "all",
"type": "string"
}
}
}