Ghost/core/server/data/schema/default-settings.json

135 lines
3.8 KiB
JSON
Raw Normal View History

{
"core": {
"db_hash": {
"defaultValue": null
},
"next_update_check": {
"defaultValue": null
},
Update Notification improvements (#9123) closes #5071 - Remove hardcoded notification in admin controller - NOTE: update check notifications are no longer blocking the admin rendering - this is one of the most import changes - we remove the hardcoded release message - we also remove adding a notification manually in here, because this will work differently from now on -> you receive a notification (release or custom) in the update check module and this module adds the notification as is to our database - Change default core settings keys - remove displayUpdateNotification -> this was used to store the release version number send from the UCS -> based on this value, Ghost creates a notification container with self defined values -> not needed anymore - rename seenNotifications to notifications -> the new notifications key will hold both 1. the notification from the USC 2. the information about if a notification was seen or not - this key hold only one release notification - and n custom notifications - Update Check Module: Request to the USC depends on the privacy configuration - useUpdateCheck: true -> does a checkin in the USC (exposes data) - useUpdateCheck: false -> does only a GET query to the USC (does not expose any data) - make the request handling dynamic, so it depends on the flag - add an extra logic to be able to define a custom USC endpoint (helpful for testing) - add an extra logic to be able to force the request to the service (helpful for testing) - Update check module: re-work condition when a check should happen - only if the env is not correct - remove deprecated config.updateCheck - remove isPrivacyDisabled check (handled differently now, explained in last commit) - Update check module: remove `showUpdateNotification` and readability - showUpdateNotification was used in the admin controller to fetch the latest release version number from the db - no need to check against semver in general, the USC takes care of that (no need to double check) - improve readability of `nextUpdateCheck` condition - Update check module: refactor `updateCheckResponse` - remove db call to displayUpdateNotification, not used anymore - support receiving multiple custom notifications - support custom notification groups - the default group is `all` - this will always be consumed - groups can be extended via config e.g. `notificationGroups: ['migration']` - Update check module: refactor createCustomNotification helper - get rid of taking over notification duplication handling (this is not the task of the update check module) - ensure we have good fallback values for non present attributes in a notification - get rid of semver check (happens in the USC) - could be reconsidered later if LTS is gone - Refactor notification API - reason: get rid of in process notification store -> this was an object hold in process -> everything get's lost after restart -> not helpful anymore, because imagine the following case -> you get a notification -> you store it in process -> you mark this notification as seen -> you restart Ghost, you will receive the same notification on the next check again -> because we are no longer have a separate seen notifications object - use database settings key `notification` instead - refactor all api endpoints to support reading and storing into the `notifications` object - most important: notification deletion happens via a `seen` property (the notification get's physically deleted 3 month automatically) -> we have to remember a seen property, because otherwise you don't know which notification was already received/seen - Add listener to remove seen notifications automatically after 3 month - i just decided for 3 month (we can decrease?) - at the end it doesn't really matter, as long as the windows is not tooooo short - listen on updates for the notifications settings - check if notification was seen and is older than 3 month - ignore release notification - Updated our privacy document - Updated docs.ghost.org for privacy config behaviour - contains a migration script to remove old settings keys
2018-01-09 17:20:00 +03:00
"notifications": {
"defaultValue": "[]"
},
"session_secret": {
"defaultValue": null
}
},
"blog": {
"title": {
"defaultValue": "Ghost",
"validations": {
"isLength": {
"max": 150
}
}
},
"description": {
"defaultValue": "The professional publishing platform",
"validations": {
"isLength": {
"max": 200
}
}
},
"logo": {
"defaultValue": "https://static.ghost.org/v1.0.0/images/ghost-logo.svg"
},
"cover_image": {
"defaultValue": "https://static.ghost.org/v1.0.0/images/blog-cover.jpg"
},
"icon": {
"defaultValue": ""
},
"default_locale": {
"defaultValue": "en",
"validations": {
"isEmpty": false
}
},
"active_timezone": {
"defaultValue": "Etc/UTC",
timezones: Always use the timezone of blog setting closes #6406 - adding timeZone Service to get the offset (=timezone reg. moment-timezone) overall available - new publishedAtOffset date as CP using timeZone service and moment-timezone to calculate offset incl. DST - removing timezone-obj transform as it became obsolete with moment-timezone - reading timezones from configuration/timezones api endpoint - adding a moment-utc transform to only work with utc times in backend - when switching the timezone in the select box, the user will be shown the local time of the selected timezone - added clock service to show actual time ticking below select box - default timezone is '(GMT) Greenwich Mean Time : Dublin, Edinburgh, London' - if no timezone is saved in the settings yet, the default value will be used - showing local time in 'Publish Date' when it's a draft and no actual publishedAt value exists - Removed the format 'DD MMM YY @ HH:mm (UTC Z)' which resolves to '01 Jan 16 @ 14:00 (UTC +02:00)' - Changing the date.js helper in core/server for moment-timezone - Fix timezone select: updates `selectedTimezone` to return the matching object from `availableTimezones` - Including timezones in test for date-helper - update to moment-timezone 0.5.1 - moving form-group of 'selectTimezone' further up so - Tests: - Set except for clock service in test env - adding fixtures to mirage - adding 'service.ajax' to navigation-test.js - adding 'service:ghostPaths' to navigation-test.js - Code improvements - Changing clockservice to ES6
2016-02-02 10:04:40 +03:00
"validations": {
"isTimezone": true,
"isEmpty": false
timezones: Always use the timezone of blog setting closes #6406 - adding timeZone Service to get the offset (=timezone reg. moment-timezone) overall available - new publishedAtOffset date as CP using timeZone service and moment-timezone to calculate offset incl. DST - removing timezone-obj transform as it became obsolete with moment-timezone - reading timezones from configuration/timezones api endpoint - adding a moment-utc transform to only work with utc times in backend - when switching the timezone in the select box, the user will be shown the local time of the selected timezone - added clock service to show actual time ticking below select box - default timezone is '(GMT) Greenwich Mean Time : Dublin, Edinburgh, London' - if no timezone is saved in the settings yet, the default value will be used - showing local time in 'Publish Date' when it's a draft and no actual publishedAt value exists - Removed the format 'DD MMM YY @ HH:mm (UTC Z)' which resolves to '01 Jan 16 @ 14:00 (UTC +02:00)' - Changing the date.js helper in core/server for moment-timezone - Fix timezone select: updates `selectedTimezone` to return the matching object from `availableTimezones` - Including timezones in test for date-helper - update to moment-timezone 0.5.1 - moving form-group of 'selectTimezone' further up so - Tests: - Set except for clock service in test env - adding fixtures to mirage - adding 'service.ajax' to navigation-test.js - adding 'service:ghostPaths' to navigation-test.js - Code improvements - Changing clockservice to ES6
2016-02-02 10:04:40 +03:00
}
},
"force_i18n": {
"defaultValue": "true",
"validations": {
"isEmpty": false,
"isIn": [["true", "false"]]
}
2013-11-21 22:44:18 +04:00
},
"permalinks": {
"defaultValue": "/:slug/",
"validations": {
"matches": "^(\/:?[a-z0-9_-]+){1,5}\/$",
✨ Multiple authors (#9426) no issue This PR adds the server side logic for multiple authors. This adds the ability to add multiple authors per post. We keep and support single authors (maybe till the next major - this is still in discussion) ### key notes - `authors` are not fetched by default, only if we need them - the migration script iterates over all posts and figures out if an author_id is valid and exists (in master we can add invalid author_id's) and then adds the relation (falls back to owner if invalid) - ~~i had to push a fork of bookshelf to npm because we currently can't bump bookshelf + the two bugs i discovered are anyway not yet merged (https://github.com/kirrg001/bookshelf/commits/master)~~ replaced by new bookshelf release - the implementation of single & multiple authors lives in a single place (introduction of a new concept: model relation) - if you destroy an author, we keep the behaviour for now -> remove all posts where the primary author id matches. furthermore, remove all relations in posts_authors (e.g. secondary author) - we make re-use of the `excludeAttrs` concept which was invented in the contributors PR (to protect editing authors as author/contributor role) -> i've added a clear todo that we need a logic to make a diff of the target relation -> both for tags and authors - `authors` helper available (same as `tags` helper) - `primary_author` computed field available - `primary_author` functionality available (same as `primary_tag` e.g. permalinks, prev/next helper etc)
2018-03-27 17:16:15 +03:00
"matches": "(:id|:slug|:year|:month|:day|:author|:primary_tag|:primary_author)",
2013-11-21 22:44:18 +04:00
"notContains": "/ghost/"
}
},
"amp": {
"defaultValue" : "true",
"validations": {
"isIn": [["true", "false"]]
}
},
"ghost_head": {
"defaultValue" : ""
},
"ghost_foot": {
"defaultValue" : ""
2014-12-14 20:56:04 +03:00
},
"facebook": {
"defaultValue" : "ghost"
},
"twitter": {
"defaultValue" : "tryghost"
},
2014-12-14 20:56:04 +03:00
"labs": {
"defaultValue": "{}"
},
"navigation": {
"defaultValue": "[{\"label\":\"Home\", \"url\":\"/\"},{\"label\":\"Tag\", \"url\":\"/tag/getting-started/\"}, {\"label\":\"Author\", \"url\":\"/author/ghost/\"},{\"label\":\"Help\", \"url\":\"https://docs.ghost.org\"}]"
},
"slack": {
"defaultValue": "[{\"url\":\"\", \"username\":\"Ghost\"}]"
},
"unsplash": {
"defaultValue": "{\"isActive\": true}"
}
},
"theme": {
"active_theme": {
"defaultValue": "casper"
}
},
"private": {
"is_private": {
"defaultValue": "false",
"validations": {
"isIn": [["true", "false"]]
}
},
"password": {
"defaultValue": ""
},
"public_hash": {
"defaultValue": null
}
},
"members": {
"members_public_key": {
"defaultValue": null
},
"members_private_key": {
"defaultValue": null
},
"members_session_secret": {
"defaultValue": null
},
"members_subscription_settings": {
"defaultValue": "{\"isPaid\":false,\"paymentProcessors\":[{\"adapter\":\"stripe\",\"config\":{\"secret_token\":\"\",\"public_token\":\"\",\"product\":{\"name\":\"Ghost Subscription\"},\"plans\":[{\"name\":\"Monthly\",\"currency\":\"usd\",\"interval\":\"month\",\"amount\":\"\"},{\"name\":\"Yearly\",\"currency\":\"usd\",\"interval\":\"year\",\"amount\":\"\"}]}}]}"
}
}
}