From ae8177be8c0ca2b13ecc7d46a9dff4efd699cfe4 Mon Sep 17 00:00:00 2001 From: Daniel Lockyer Date: Thu, 21 Apr 2022 09:04:30 +0100 Subject: [PATCH] fix(import): ensure import/exports works with 5.x closes https://github.com/TryGhost/Toolbox/issues/256 - we should only need to add the new unversioned base URL here - also adds 5.x tests --- lib/tasks/import/api.js | 3 +- test/unit/tasks/import/api-spec.js | 79 ++++++++++++++++++++++++ test/unit/tasks/import/fixtures/5.x.json | 1 + 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 test/unit/tasks/import/fixtures/5.x.json diff --git a/lib/tasks/import/api.js b/lib/tasks/import/api.js index 546582cba..96e3d7510 100644 --- a/lib/tasks/import/api.js +++ b/lib/tasks/import/api.js @@ -11,7 +11,8 @@ const bases = { 1: '/ghost/api/v0.1', 2: '/ghost/api/v2/admin', 3: '/ghost/api/v3/admin', - 4: '/ghost/api/v4/admin' + 4: '/ghost/api/v4/admin', + 5: '/ghost/api/admin' }; function getBaseUrl(version, url) { diff --git a/test/unit/tasks/import/api-spec.js b/test/unit/tasks/import/api-spec.js index fcfa117fb..8cfe231e4 100644 --- a/test/unit/tasks/import/api-spec.js +++ b/test/unit/tasks/import/api-spec.js @@ -31,6 +31,11 @@ describe('Unit > Tasks > Import > setup', function () { expect(baseUrl).to.equal('https://example.com/ghost/api/v4/admin'); }); + it('5.x', function () { + const baseUrl = getBaseUrl('5.0.0', 'https://example.com/'); + expect(baseUrl).to.equal('https://example.com/ghost/api/admin'); + }); + it('unsupported', function () { try { getBaseUrl('0.11.14', 'https://example.com'); @@ -323,6 +328,36 @@ describe('Unit > Tasks > Import > setup', function () { expect(sessionScope.isDone()).to.be.true; expect(importScope.isDone()).to.be.true; }); + + it('5.x', async function () { + const sessionScope = nock(testUrl, { + reqheaders: { + Origin: testUrl + } + }).post('/ghost/api/admin/session/', { + username: 'test@example.com', + password: 'password' + }).reply(201, 'Success', { + 'Set-Cookie': 'ghost-admin-api-session=test-session-data; Path=/ghost; HttpOnly; Secure; Expires=Tue, 31 Dec 2099 23:59:59 GMT;' + }); + + const importScope = nock(testUrl, { + reqheaders: { + cookie: [ + 'ghost-admin-api-session=test-session-data' + ], + origin: testUrl + } + }).post('/ghost/api/admin/db/').reply(201, {}); + + await runImport('5.0.0', 'http://localhost:2368', { + username: 'test@example.com', + password: 'password' + }, path.join(__dirname, 'fixtures/5.x.json')); + + expect(sessionScope.isDone()).to.be.true; + expect(importScope.isDone()).to.be.true; + }); }); describe('downloadExport', function () { @@ -517,4 +552,48 @@ describe('Unit > Tasks > Import > setup', function () { expect(fs.readJsonSync(outputFile)).to.deep.equal(exportData); }); }); + + it('5.x', async function () { + const sessionScope = nock(testUrl, { + reqheaders: { + Origin: testUrl + } + }).post('/ghost/api/admin/session/', { + username: 'test@example.com', + password: 'password' + }).reply(201, 'Success', { + 'Set-Cookie': 'ghost-admin-api-session=test-session-data; Path=/ghost; HttpOnly; Secure; Expires=Tue, 31 Dec 2099 23:59:59 GMT;' + }); + + const exportData = { + db: [{ + meta: { + version: '5.0.0' + }, + data: { + users: [] + } + }] + }; + const exportScope = nock(testUrl, { + reqheaders: { + cookie: [ + 'ghost-admin-api-session=test-session-data' + ], + origin: testUrl + } + }).get('/ghost/api/admin/db/').reply(200, exportData); + + const tmpDir = tmp.dirSync(); + const outputFile = path.join(tmpDir.name, '5.x.json'); + + await downloadExport('5.0.0', 'http://localhost:2368', { + username: 'test@example.com', + password: 'password' + }, outputFile); + + expect(sessionScope.isDone()).to.be.true; + expect(exportScope.isDone()).to.be.true; + expect(fs.readJsonSync(outputFile)).to.deep.equal(exportData); + }); }); diff --git a/test/unit/tasks/import/fixtures/5.x.json b/test/unit/tasks/import/fixtures/5.x.json new file mode 100644 index 000000000..af89b0f84 --- /dev/null +++ b/test/unit/tasks/import/fixtures/5.x.json @@ -0,0 +1 @@ +{"db":[{"meta":{"exported_on":1616069676409,"version":"5.0.0"},"data":{"migrations":[{"id":1,"name":"1-create-tables.js","version":"init","currentVersion":"3.42"},{"id":2,"name":"2-create-fixtures.js","version":"init","currentVersion":"3.42"},{"id":3,"name":"1-post-excerpt.js","version":"1.3","currentVersion":"3.42"},{"id":4,"name":"1-codeinjection-post.js","version":"1.4","currentVersion":"3.42"},{"id":5,"name":"1-og-twitter-post.js","version":"1.5","currentVersion":"3.42"},{"id":6,"name":"1-add-backup-client.js","version":"1.7","currentVersion":"3.42"},{"id":7,"name":"1-add-permissions-redirect.js","version":"1.9","currentVersion":"3.42"},{"id":8,"name":"1-custom-template-post.js","version":"1.13","currentVersion":"3.42"},{"id":9,"name":"2-theme-permissions.js","version":"1.13","currentVersion":"3.42"},{"id":10,"name":"1-add-webhooks-table.js","version":"1.18","currentVersion":"3.42"},{"id":11,"name":"1-webhook-permissions.js","version":"1.19","currentVersion":"3.42"},{"id":12,"name":"1-remove-settings-keys.js","version":"1.20","currentVersion":"3.42"},{"id":13,"name":"1-add-contributor-role.js","version":"1.21","currentVersion":"3.42"},{"id":14,"name":"1-multiple-authors-DDL.js","version":"1.22","currentVersion":"3.42"},{"id":15,"name":"1-multiple-authors-DML.js","version":"1.22","currentVersion":"3.42"},{"id":16,"name":"1-update-koenig-beta-html.js","version":"1.25","currentVersion":"3.42"},{"id":17,"name":"2-demo-post.js","version":"1.25","currentVersion":"3.42"},{"id":18,"name":"1-rename-amp-column.js","version":"2.0","currentVersion":"3.42"},{"id":19,"name":"2-update-posts.js","version":"2.0","currentVersion":"3.42"},{"id":20,"name":"3-remove-koenig-labs.js","version":"2.0","currentVersion":"3.42"},{"id":21,"name":"4-permalink-setting.js","version":"2.0","currentVersion":"3.42"},{"id":22,"name":"5-remove-demo-post.js","version":"2.0","currentVersion":"3.42"},{"id":23,"name":"6-replace-fixture-posts.js","version":"2.0","currentVersion":"3.42"},{"id":24,"name":"1-add-sessions-table.js","version":"2.2","currentVersion":"3.42"},{"id":25,"name":"2-add-integrations-and-api-key-tables.js","version":"2.2","currentVersion":"3.42"},{"id":26,"name":"3-insert-admin-integration-role.js","version":"2.2","currentVersion":"3.42"},{"id":27,"name":"4-insert-integration-and-api-key-permissions.js","version":"2.2","currentVersion":"3.42"},{"id":28,"name":"5-add-mobiledoc-revisions-table.js","version":"2.2","currentVersion":"3.42"},{"id":29,"name":"1-add-webhook-columns.js","version":"2.3","currentVersion":"3.42"},{"id":30,"name":"2-add-webhook-edit-permission.js","version":"2.3","currentVersion":"3.42"},{"id":31,"name":"1-add-webhook-permission-roles.js","version":"2.6","currentVersion":"3.42"},{"id":32,"name":"1-add-members-table.js","version":"2.8","currentVersion":"3.42"},{"id":33,"name":"1-remove-empty-strings.js","version":"2.13","currentVersion":"3.42"},{"id":34,"name":"1-add-actions-table.js","version":"2.14","currentVersion":"3.42"},{"id":35,"name":"2-add-actions-permissions.js","version":"2.14","currentVersion":"3.42"},{"id":36,"name":"1-add-type-column-to-integrations.js","version":"2.15","currentVersion":"3.42"},{"id":37,"name":"2-insert-zapier-integration.js","version":"2.15","currentVersion":"3.42"},{"id":38,"name":"1-add-members-perrmissions.js","version":"2.16","currentVersion":"3.42"},{"id":39,"name":"1-normalize-settings.js","version":"2.17","currentVersion":"3.42"},{"id":40,"name":"2-posts-add-canonical-url.js","version":"2.17","currentVersion":"3.42"},{"id":41,"name":"1-restore-settings-from-backup.js","version":"2.18","currentVersion":"3.42"},{"id":42,"name":"1-update-editor-permissions.js","version":"2.21","currentVersion":"3.42"},{"id":43,"name":"1-add-member-permissions-to-roles.js","version":"2.22","currentVersion":"3.42"},{"id":44,"name":"1-insert-ghost-db-backup-role.js","version":"2.27","currentVersion":"3.42"},{"id":45,"name":"2-insert-db-backup-integration.js","version":"2.27","currentVersion":"3.42"},{"id":46,"name":"3-add-subdirectory-to-relative-canonical-urls.js","version":"2.27","currentVersion":"3.42"},{"id":47,"name":"1-add-db-backup-content-permission.js","version":"2.28","currentVersion":"3.42"},{"id":48,"name":"2-add-db-backup-content-permission-to-roles.js","version":"2.28","currentVersion":"3.42"},{"id":49,"name":"3-insert-ghost-scheduler-role.js","version":"2.28","currentVersion":"3.42"},{"id":50,"name":"4-insert-scheduler-integration.js","version":"2.28","currentVersion":"3.42"},{"id":51,"name":"5-add-scheduler-permission-to-roles.js","version":"2.28","currentVersion":"3.42"},{"id":52,"name":"6-add-type-column.js","version":"2.28","currentVersion":"3.42"},{"id":53,"name":"7-populate-type-column.js","version":"2.28","currentVersion":"3.42"},{"id":54,"name":"8-remove-page-column.js","version":"2.28","currentVersion":"3.42"},{"id":55,"name":"1-add-post-page-column.js","version":"2.29","currentVersion":"3.42"},{"id":56,"name":"2-populate-post-page-column.js","version":"2.29","currentVersion":"3.42"},{"id":57,"name":"3-remove-page-type-column.js","version":"2.29","currentVersion":"3.42"},{"id":58,"name":"1-remove-name-and-password-from-members-table.js","version":"2.31","currentVersion":"3.42"},{"id":59,"name":"01-add-members-stripe-customers-table.js","version":"2.32","currentVersion":"3.42"},{"id":60,"name":"02-add-name-to-members-table.js","version":"2.32","currentVersion":"3.42"},{"id":61,"name":"01-correct-members-stripe-customers-table.js","version":"2.33","currentVersion":"3.42"},{"id":62,"name":"01-add-stripe-customers-subscriptions-table.js","version":"2.34","currentVersion":"3.42"},{"id":63,"name":"02-add-email-to-members-stripe-customers-table.js","version":"2.34","currentVersion":"3.42"},{"id":64,"name":"03-add-name-to-members-stripe-customers-table.js","version":"2.34","currentVersion":"3.42"},{"id":65,"name":"01-add-note-to-members-table.js","version":"2.35","currentVersion":"3.42"},{"id":66,"name":"01-add-self-signup-and-from address-to-members-settings.js","version":"2.37","currentVersion":"3.42"},{"id":67,"name":"01-remove-user-ghost-auth-columns.js","version":"3.0","currentVersion":"3.42"},{"id":68,"name":"02-drop-token-auth-tables.js","version":"3.0","currentVersion":"3.42"},{"id":69,"name":"03-drop-client-auth-tables.js","version":"3.0","currentVersion":"3.42"},{"id":70,"name":"04-add-posts-meta-table.js","version":"3.0","currentVersion":"3.42"},{"id":71,"name":"05-populate-posts-meta-table.js","version":"3.0","currentVersion":"3.42"},{"id":72,"name":"06-remove-posts-meta-columns.js","version":"3.0","currentVersion":"3.42"},{"id":73,"name":"07-add-posts-type-column.js","version":"3.0","currentVersion":"3.42"},{"id":74,"name":"08-populate-posts-type-column.js","version":"3.0","currentVersion":"3.42"},{"id":75,"name":"09-remove-posts-page-column.js","version":"3.0","currentVersion":"3.42"},{"id":76,"name":"10-remove-empty-strings.js","version":"3.0","currentVersion":"3.42"},{"id":77,"name":"11-update-posts-html.js","version":"3.0","currentVersion":"3.42"},{"id":78,"name":"12-populate-members-table-from-subscribers.js","version":"3.0","currentVersion":"3.42"},{"id":79,"name":"13-drop-subscribers-table.js","version":"3.0","currentVersion":"3.42"},{"id":80,"name":"14-remove-subscribers-flag.js","version":"3.0","currentVersion":"3.42"},{"id":81,"name":"01-add-send-email-when-published-to-posts.js","version":"3.1","currentVersion":"3.42"},{"id":82,"name":"02-add-email-subject-to-posts-meta.js","version":"3.1","currentVersion":"3.42"},{"id":83,"name":"03-add-email-preview-permissions.js","version":"3.1","currentVersion":"3.42"},{"id":84,"name":"04-add-subscribed-flag-to-members.js","version":"3.1","currentVersion":"3.42"},{"id":85,"name":"05-add-emails-table.js","version":"3.1","currentVersion":"3.42"},{"id":86,"name":"06-add-email-permissions.js","version":"3.1","currentVersion":"3.42"},{"id":87,"name":"07-add-uuid-field-to-members.js","version":"3.1","currentVersion":"3.42"},{"id":88,"name":"08-add-uuid-values-to-members.js","version":"3.1","currentVersion":"3.42"},{"id":89,"name":"09-add-further-email-permissions.js","version":"3.1","currentVersion":"3.42"},{"id":90,"name":"10-add-email-error-data-column.js","version":"3.1","currentVersion":"3.42"},{"id":91,"name":"01-add-cancel-at-period-end-to-subscriptions.js","version":"3.2","currentVersion":"3.42"},{"id":92,"name":"1-add-labels-table.js","version":"3.6","currentVersion":"3.42"},{"id":93,"name":"2-add-members-labels-table.js","version":"3.6","currentVersion":"3.42"},{"id":94,"name":"3-add-labels-permissions.js","version":"3.6","currentVersion":"3.42"},{"id":95,"name":"01-fix-incorrect-member-labels-foreign-keys.js","version":"3.7","currentVersion":"3.42"},{"id":96,"name":"01-add-geolocation-to-members.js","version":"3.8","currentVersion":"3.42"},{"id":97,"name":"01-add-member-sigin-url-permissions.js","version":"3.9","currentVersion":"3.42"},{"id":98,"name":"01-remove-broken-complimentary-plan-from-members-settings.js","version":"3.11","currentVersion":"3.42"},{"id":99,"name":"01-add-identity-permission.js","version":"3.12","currentVersion":"3.42"},{"id":100,"name":"02-remove-legacy-is-paid-flag-from-settings.js","version":"3.12","currentVersion":"3.42"},{"id":101,"name":"01-add-email-preview-permissions-to-roles.js","version":"3.18","currentVersion":"3.42"},{"id":102,"name":"02-add-members_stripe_connect-auth-permissions.js","version":"3.18","currentVersion":"3.42"},{"id":103,"name":"01-update-member-from-email-address.js","version":"3.19","currentVersion":"3.42"},{"id":104,"name":"01-removed-legacy-values-from-settings-table.js","version":"3.22","currentVersion":"3.42"},{"id":105,"name":"02-settings-key-renames.js","version":"3.22","currentVersion":"3.42"},{"id":106,"name":"03-add-group-and-flags-to-settings.js","version":"3.22","currentVersion":"3.42"},{"id":107,"name":"04-populate-settings-groups-and-flags.js","version":"3.22","currentVersion":"3.42"},{"id":108,"name":"05-migrate-members-subscription-settings.js","version":"3.22","currentVersion":"3.42"},{"id":109,"name":"06-migrate-stripe-connect-settings.js","version":"3.22","currentVersion":"3.42"},{"id":110,"name":"07-update-type-for-settings.js","version":"3.22","currentVersion":"3.42"},{"id":111,"name":"01-migrate-bulk-email-settings.js","version":"3.23","currentVersion":"3.42"},{"id":112,"name":"02-remove-bulk-email-settings.js","version":"3.23","currentVersion":"3.42"},{"id":113,"name":"03-update-portal-button-setting.js","version":"3.23","currentVersion":"3.42"},{"id":114,"name":"04-add-meta-columns-to-tags-table.js","version":"3.23","currentVersion":"3.42"},{"id":115,"name":"01-populate-group-for-new-portal-settings.js","version":"3.24","currentVersion":"3.42"},{"id":116,"name":"01-add-members-stripe-webhook-settings.js","version":"3.25","currentVersion":"3.42"},{"id":117,"name":"01-add-amp-gtag-id-setting.js","version":"3.26","currentVersion":"3.42"},{"id":118,"name":"01-remove-duplicate-subscriptions.js","version":"3.29","currentVersion":"3.42"},{"id":119,"name":"02-remove-duplicate-customers.js","version":"3.29","currentVersion":"3.42"},{"id":120,"name":"03-remove-orphaned-customers.js","version":"3.29","currentVersion":"3.42"},{"id":121,"name":"04-remove-orphaned-subscriptions.js","version":"3.29","currentVersion":"3.42"},{"id":122,"name":"05-add-member-constraints.js","version":"3.29","currentVersion":"3.42"},{"id":123,"name":"01-add-member-signin-url-permission-roles.js","version":"3.30","currentVersion":"3.42"},{"id":124,"name":"01-add-member-support-address-setting.js","version":"3.32","currentVersion":"3.42"},{"id":125,"name":"02-add-member-reply-address-setting.js","version":"3.32","currentVersion":"3.42"},{"id":126,"name":"03-add-routes-hash-setting.js","version":"3.32","currentVersion":"3.42"},{"id":127,"name":"01-add-email-recipients-tables.js","version":"3.33","currentVersion":"3.42"},{"id":128,"name":"01-add-tokens-table.js","version":"3.34","currentVersion":"3.42"},{"id":129,"name":"01-add-address-columns-to-emails-table.js","version":"3.35","currentVersion":"3.42"},{"id":130,"name":"01-add-snippets-table.js","version":"3.36","currentVersion":"3.42"},{"id":131,"name":"02-add-snippets-permissions.js","version":"3.36","currentVersion":"3.42"},{"id":132,"name":"01-update-portal-button-setting.js","version":"3.37","currentVersion":"3.42"},{"id":133,"name":"01-add-email-recipient-filter-column.js","version":"3.38","currentVersion":"3.42"},{"id":134,"name":"02-populate-email-recipient-filter-column.js","version":"3.38","currentVersion":"3.42"},{"id":135,"name":"03-add-recipient-filter-column.js","version":"3.38","currentVersion":"3.42"},{"id":136,"name":"04-populate-recipient-filter-column.js","version":"3.38","currentVersion":"3.42"},{"id":137,"name":"05-add-emails-track-opens-column.js","version":"3.38","currentVersion":"3.42"},{"id":138,"name":"06-add-newsletter-settings.js","version":"3.38","currentVersion":"3.42"},{"id":139,"name":"07-migrate-newsletter-settings-from-config.js","version":"3.38","currentVersion":"3.42"},{"id":140,"name":"08-repopulate-send-email-when-published-down-migration.js","version":"3.38","currentVersion":"3.42"},{"id":141,"name":"09-remove-send-email-when-published-column.js","version":"3.38","currentVersion":"3.42"},{"id":142,"name":"01-add-members-signup-redirect-settings.js","version":"3.39","currentVersion":"3.42"},{"id":143,"name":"02-add-user-id-to-api-keys-table.js","version":"3.39","currentVersion":"3.42"},{"id":144,"name":"03-add-email-track-opens-setting.js","version":"3.39","currentVersion":"3.42"},{"id":145,"name":"04-add-cancellation-reason-column.js","version":"3.39","currentVersion":"3.42"},{"id":146,"name":"05-remove-unused-columns-on-emails.js","version":"3.39","currentVersion":"3.42"},{"id":147,"name":"06-add-email-recipient-index.js","version":"3.39","currentVersion":"3.42"},{"id":148,"name":"07-add-email-recipients-event-timestamps.js","version":"3.39","currentVersion":"3.42"},{"id":149,"name":"08-add-email-stats-columns.js","version":"3.39","currentVersion":"3.42"},{"id":150,"name":"01-add-members-email-open-rate-column.js","version":"3.40","currentVersion":"3.42"},{"id":151,"name":"02-add members-email-aggregation-columns.js","version":"3.40","currentVersion":"3.42"},{"id":152,"name":"03-populate-members-email-counts.js","version":"3.40","currentVersion":"3.42"},{"id":153,"name":"01-add-firstpromoter-settings.js","version":"3.41","currentVersion":"3.42"},{"id":154,"name":"01-update-mobiledoc.js","version":"4.0","currentVersion":"4.0"},{"id":155,"name":"02-add-status-column-to-members.js","version":"4.0","currentVersion":"4.0"},{"id":156,"name":"03-populate-status-column-for-members.js","version":"4.0","currentVersion":"4.0"},{"id":157,"name":"04-drop-apps-related-tables.js","version":"4.0","currentVersion":"4.0"},{"id":158,"name":"05-add-members-subscribe-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":159,"name":"06-populate-members-subscribe-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":160,"name":"07-alter-unique-constraint-for-posts-slug.js","version":"4.0","currentVersion":"4.0"},{"id":161,"name":"08-add-members-login-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":162,"name":"09-add-members-email-change-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":163,"name":"10-add-members-status-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":164,"name":"11-add-members-paid-subscription-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":165,"name":"12-delete-apps-related-settings-keys.js","version":"4.0","currentVersion":"4.0"},{"id":166,"name":"13-add-members-payment-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":167,"name":"14-remove-orphaned-stripe-records.js","version":"4.0","currentVersion":"4.0"},{"id":168,"name":"15-add-frontmatter-column-to-meta.js","version":"4.0","currentVersion":"4.0"},{"id":169,"name":"16-refactor-slack-setting.js","version":"4.0","currentVersion":"4.0"},{"id":170,"name":"17-populate-members-status-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":171,"name":"18-transform-urls-absolute-to-transform-ready.js","version":"4.0","currentVersion":"4.0"},{"id":172,"name":"19-remove-labs-members-setting.js","version":"4.0","currentVersion":"4.0"},{"id":173,"name":"20-refactor-unsplash-setting.js","version":"4.0","currentVersion":"4.0"},{"id":174,"name":"21-sanitize-email-batches-provider-id.js","version":"4.0","currentVersion":"4.0"},{"id":175,"name":"22-solve-orphaned-webhooks.js","version":"4.0","currentVersion":"4.0"},{"id":176,"name":"23-regenerate-posts-html.js","version":"4.0","currentVersion":"4.0"},{"id":177,"name":"24-add-missing-email-permissions.js","version":"4.0","currentVersion":"4.0"},{"id":178,"name":"25-populate-members-paid-subscription-events-table.js","version":"4.0","currentVersion":"4.0"},{"id":179,"name":"26-add-cascade-on-delete.js","version":"4.0","currentVersion":"4.0"},{"id":180,"name":"27-add-primary-key-brute-migrations-lock.js","version":"4.0","currentVersion":"4.0"},{"id":181,"name":"28-add-webhook-intergrations-foreign-key.js","version":"4.0","currentVersion":"4.0"},{"id":182,"name":"29-fix-foreign-key-for-members-stripe-customers-subscriptions.js","version":"4.0","currentVersion":"4.0"},{"id":183,"name":"30-set-default-accent-color.js","version":"4.0","currentVersion":"4.0"}],"posts":[{"id":"6050a6f2d65ddc29a4f42142","uuid":"e78a64c3-aa7a-4626-a752-87dcb3264dcd","title":"Creating a custom theme","slug":"themes","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[[\"soft-return\",\"\",{}]],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/theme-marketplace.png\",\"caption\":\"Anyone can write a completely custom Ghost theme with some solid knowledge of HTML and CSS\",\"alt\":\"Ghost theme marketplace screenshot\"}]],\"markups\":[[\"a\",[\"href\",\"https://ghost.org/marketplace/\"]],[\"code\"],[\"a\",[\"href\",\"https://github.com/TryGhost/Casper\"]],[\"a\",[\"href\",\"https://ghost.org/docs/themes/\"]],[\"a\",[\"href\",\"https://github.com/TryGhost/Starter/\"]],[\"strong\"],[\"a\",[\"href\",\"https://forum.ghost.org/c/themes\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Ghost themes\"]]],[1,\"p\",[[0,[],0,\"Ghost comes with a default theme called Casper, which is designed to be a clean, readable publication layout and can be easily adapted for most purposes.\"]]],[1,\"p\",[[0,[],0,\"If you need something a little more customised, it's entirely possible to build on top of existing open source themes, or to build your own from scratch. Rather than giving you a few basic settings which act as a poor proxy for code, we just let you write code.\"]]],[1,\"h2\",[[0,[],0,\"Marketplace\"]]],[1,\"p\",[[0,[],0,\"There are a huge range of both free and premium pre-built themes which you can download from the \"],[0,[0],1,\"Ghost Theme Marketplace\"],[0,[],0,\":\"]]],[10,0],[1,\"h2\",[[0,[],0,\"Theme development\"]]],[1,\"p\",[[0,[],0,\"Ghost themes are written with a templating language called handlebars, which has a set of dynamic helpers to insert your data into template files. For example: \"],[0,[1],1,\"{{author.name}}\"],[0,[],0,\" outputs the name of the current author.\"]]],[1,\"p\",[[0,[],0,\"The best way to learn how to write your own Ghost theme is to have a look at \"],[0,[2],1,\"the source code for Casper\"],[0,[],0,\", which is heavily commented and should give you a sense of how everything fits together.\"],[1,[],0,0]]],[3,\"ul\",[[[0,[1],1,\"default.hbs\"],[0,[],0,\" is the main template file, all contexts will load inside this file unless specifically told to use a different template.\"]],[[0,[1],1,\"post.hbs\"],[0,[],0,\" is the file used in the context of viewing a post.\"]],[[0,[1],1,\"index.hbs\"],[0,[],0,\" is the file used in the context of viewing the home page.\"]],[[0,[],0,\"and so on\"]]]],[1,\"p\",[[0,[],0,\"We've got \"],[0,[3],1,\"full and extensive theme documentation\"],[0,[],0,\" which outlines every template file, context and helper that you can use. You can also get started with our useful \"],[0,[4],1,\"starter theme\"],[0,[],0,\", which includes the most common foundations and components required to build your own theme.\"]]],[1,\"blockquote\",[[0,[],0,\"If you want to chat with other people making Ghost themes to get any advice or help, there's also a \"],[0,[5],1,\"themes\"],[0,[],0,\" section on our \"],[0,[6],1,\"public Ghost forum\"],[0,[],0,\".\"]]]],\"ghostVersion\":\"3.0\"}","html":"

Ghost themes

Ghost comes with a default theme called Casper, which is designed to be a clean, readable publication layout and can be easily adapted for most purposes.

If you need something a little more customised, it's entirely possible to build on top of existing open source themes, or to build your own from scratch. Rather than giving you a few basic settings which act as a poor proxy for code, we just let you write code.

Marketplace

There are a huge range of both free and premium pre-built themes which you can download from the Ghost Theme Marketplace:

\"Ghost
Anyone can write a completely custom Ghost theme with some solid knowledge of HTML and CSS

Theme development

Ghost themes are written with a templating language called handlebars, which has a set of dynamic helpers to insert your data into template files. For example: {{author.name}} outputs the name of the current author.

The best way to learn how to write your own Ghost theme is to have a look at the source code for Casper, which is heavily commented and should give you a sense of how everything fits together.

We've got full and extensive theme documentation which outlines every template file, context and helper that you can use. You can also get started with our useful starter theme, which includes the most common foundations and components required to build your own theme.

If you want to chat with other people making Ghost themes to get any advice or help, there's also a themes section on our public Ghost forum.
","comment_id":"6050a6f2d65ddc29a4f42142","plaintext":"Ghost themes\nGhost comes with a default theme called Casper, which is designed to be a clean,\nreadable publication layout and can be easily adapted for most purposes.\n\nIf you need something a little more customised, it's entirely possible to build\non top of existing open source themes, or to build your own from scratch. Rather\nthan giving you a few basic settings which act as a poor proxy for code, we just\nlet you write code.\n\nMarketplace\nThere are a huge range of both free and premium pre-built themes which you can\ndownload from the Ghost Theme Marketplace [https://ghost.org/marketplace/]:\n\nAnyone can write a completely custom Ghost theme with some solid knowledge of\nHTML and CSSTheme development\nGhost themes are written with a templating language called handlebars, which has\na set of dynamic helpers to insert your data into template files. For example: \n{{author.name}} outputs the name of the current author.\n\nThe best way to learn how to write your own Ghost theme is to have a look at \nthe\nsource code for Casper [https://github.com/TryGhost/Casper], which is heavily\ncommented and should give you a sense of how everything fits together.\n\n\n * default.hbs is the main template file, all contexts will load inside this\n file unless specifically told to use a different template.\n * post.hbs is the file used in the context of viewing a post.\n * index.hbs is the file used in the context of viewing the home page.\n * and so on\n\nWe've got full and extensive theme documentation\n[https://ghost.org/docs/themes/] which outlines every template file, context and\nhelper that you can use. You can also get started with our useful starter theme\n[https://github.com/TryGhost/Starter/], which includes the most common\nfoundations and components required to build your own theme.\n\n> If you want to chat with other people making Ghost themes to get any advice or\nhelp, there's also a themes section on our public Ghost forum\n[https://forum.ghost.org/c/themes].","feature_image":"https://static.ghost.org/v3.0.0/images/creating-a-custom-theme.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14","published_at":"2021-03-16 12:39:14","custom_excerpt":"Ghost comes with a beautiful default theme designed for publishers which can easily be adapted for most purposes, or you can build a custom theme to suit your needs.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f2d65ddc29a4f42144","uuid":"3244a2ca-3b58-43a6-9fcb-4eb40b33325a","title":"Apps & integrations","slug":"apps-integrations","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/integrations-icons.png\",\"cardWidth\":\"full\"}],[\"markdown\",{\"markdown\":\"\\n\"}],[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/integrations-and-webhooks-in-ghost.png\",\"alt\":\"Screenshot of custom integrations with webhooks in Ghost Admin\",\"cardWidth\":\"\"}]],\"markups\":[[\"a\",[\"href\",\"https://ghost.org/integrations/\"]],[\"a\",[\"href\",\"https://zapier.com\"]],[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/docs/content-api/\"]],[\"a\",[\"href\",\"__GHOST_URL__/themes/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Work with your existing tools\"]]],[1,\"p\",[[0,[],0,\"It's possible to connect your Ghost site to hundreds of the most popular apps and tools using integrations that take no more than a few minutes to setup.\"]]],[1,\"p\",[[0,[],0,\"Whether you need to automate workflows, connect your email list, build a community or embed products from your ecommerce store, our \"],[0,[0],1,\"integrations library\"],[0,[],0,\" has got it all covered with hundreds of tutorials.\"]]],[10,0],[1,\"h2\",[[0,[],0,\"Zapier\"]]],[1,\"p\",[[0,[],0,\"On top of this, you can connect your Ghost site to more than 1,000 external services using the official integration with \"],[0,[1],1,\"Zapier\"],[0,[],0,\".\"]]],[1,\"p\",[[0,[],0,\"Zapier sets up automations with Triggers and Actions, which allows you to create and customise a wide range of connected applications.\"]]],[1,\"blockquote\",[[0,[2],1,\"Example\"],[0,[],0,\": When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).\"]]],[1,\"p\",[[0,[2],1,\"Here are the most popular Ghost<>Zapier automation templates:\"],[0,[],0,\" \"]]],[10,1],[1,\"h2\",[[0,[],0,\"Custom integrations\"]]],[1,\"p\",[[0,[],0,\"At the heart of Ghost sits a robust JSON API – designed to create, manage and retrieve content with ease. \"]]],[1,\"p\",[[0,[],0,\"It's possible to create custom Ghost integrations with dedicated API keys and webhooks from the Integrations page within Ghost Admin. \"]]],[10,2],[1,\"p\",[[0,[],0,\"Beyond that, the API allows you to build entirely custom publishing apps. You can send content from your favourite desktop editor, build a custom interface for handling editorial workflow or use Ghost as a full headless CMS with a custom front-end.\"]]],[1,\"p\",[[0,[],0,\"The Ghost API is \"],[0,[3],1,\"thoroughly documented\"],[0,[],0,\" and straightforward to work with for developers of almost any level. \"]]],[1,\"h2\",[[0,[],0,\"Final step: Themes\"]]],[1,\"p\",[[0,[],0,\"Alright, on to the last post in our welcome-series! If you're curious about creating your own Ghost theme from scratch, \"],[0,[4],1,\"find out how that works\"],[0,[],0,\".\"]]]],\"ghostVersion\":\"3.0\"}","html":"

Work with your existing tools

It's possible to connect your Ghost site to hundreds of the most popular apps and tools using integrations that take no more than a few minutes to setup.

Whether you need to automate workflows, connect your email list, build a community or embed products from your ecommerce store, our integrations library has got it all covered with hundreds of tutorials.

Zapier

On top of this, you can connect your Ghost site to more than 1,000 external services using the official integration with Zapier.

Zapier sets up automations with Triggers and Actions, which allows you to create and customise a wide range of connected applications.

Example: When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).

Here are the most popular Ghost<>Zapier automation templates:

\n

Custom integrations

At the heart of Ghost sits a robust JSON API – designed to create, manage and retrieve content with ease.

It's possible to create custom Ghost integrations with dedicated API keys and webhooks from the Integrations page within Ghost Admin.

\"Screenshot

Beyond that, the API allows you to build entirely custom publishing apps. You can send content from your favourite desktop editor, build a custom interface for handling editorial workflow or use Ghost as a full headless CMS with a custom front-end.

The Ghost API is thoroughly documented and straightforward to work with for developers of almost any level.

Final step: Themes

Alright, on to the last post in our welcome-series! If you're curious about creating your own Ghost theme from scratch, find out how that works.

","comment_id":"6050a6f2d65ddc29a4f42144","plaintext":"Work with your existing tools\nIt's possible to connect your Ghost site to hundreds of the most popular apps\nand tools using integrations that take no more than a few minutes to setup.\n\nWhether you need to automate workflows, connect your email list, build a\ncommunity or embed products from your ecommerce store, our integrations library\n[https://ghost.org/integrations/] has got it all covered with hundreds of\ntutorials.\n\nZapier\nOn top of this, you can connect your Ghost site to more than 1,000 external\nservices using the official integration with Zapier [https://zapier.com].\n\nZapier sets up automations with Triggers and Actions, which allows you to create\nand customise a wide range of connected applications.\n\n> Example: When someone new subscribes to a newsletter on a Ghost site (Trigger)\nthen the contact information is automatically pushed into MailChimp (Action).\nHere are the most popular Ghost<>Zapier automation templates: \n\nCustom integrations\nAt the heart of Ghost sits a robust JSON API – designed to create, manage and\nretrieve content with ease. \n\nIt's possible to create custom Ghost integrations with dedicated API keys and\nwebhooks from the Integrations page within Ghost Admin. \n\nBeyond that, the API allows you to build entirely custom publishing apps. You\ncan send content from your favourite desktop editor, build a custom interface\nfor handling editorial workflow or use Ghost as a full headless CMS with a\ncustom front-end.\n\nThe Ghost API is thoroughly documented [https://ghost.org/docs/content-api/] and\nstraightforward to work with for developers of almost any level. \n\nFinal step: Themes\nAlright, on to the last post in our welcome-series! If you're curious about\ncreating your own Ghost theme from scratch, find out how that works\n[__GHOST_URL__/themes/].","feature_image":"https://static.ghost.org/v3.0.0/images/app-integrations.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14","published_at":"2021-03-16 12:39:15","custom_excerpt":"Work with all your favourite apps and tools or create your own custom integrations using the Ghost API.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f2d65ddc29a4f42146","uuid":"02dd0ca5-626e-4c7d-bdc9-370befdea6c0","title":"Organising your content","slug":"organising-content","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[[\"soft-return\",\"\",{}]],\"cards\":[],\"markups\":[[\"code\"],[\"em\"],[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/docs/themes/\"]],[\"a\",[\"href\",\"http://yaml.org/spec/1.2/spec.html\",\"rel\",\"noreferrer nofollow noopener\"]],[\"a\",[\"href\",\"https://ghost.org/docs/themes/routing/\"]],[\"a\",[\"href\",\"__GHOST_URL__/apps-integrations/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Sensible tagging\"]]],[1,\"p\",[[0,[],0,\"You can think of tags like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of related content.\"]]],[1,\"p\",[[0,[],0,\"When you create content for your publication you can assign tags to help differentiate between categories of content. \"]]],[1,\"p\",[[0,[],0,\"For example you may tag some content with News and other content with Podcast, which would create two distinct categories of content listed on \"],[0,[0],1,\"/tag/news/\"],[0,[],0,\" and \"],[0,[0],1,\"/tag/podcast/\"],[0,[],0,\", respectively.\"]]],[1,\"p\",[[0,[],0,\"If you tag a post with both \"],[0,[0],1,\"News\"],[0,[],0,\" \"],[0,[1],1,\"and\"],[0,[],0,\" \"],[0,[0],1,\"Podcast\"],[0,[],0,\" - then it appears in both sections. Tag archives are like dedicated home-pages for each category of content that you have. They have their own pages, their own RSS feeds, and can support their own cover images and meta data.\"]]],[1,\"h3\",[[0,[],0,\"The primary tag\"]]],[1,\"p\",[[0,[],0,\"Inside the Ghost editor, you can drag and drop tags into a specific order. The first tag in the list is always given the most importance, and some themes will only display the primary tag (the first tag in the list) by default. \"]]],[1,\"blockquote\",[[0,[1,2],1,\"News\"],[0,[],1,\", Technology, Startup\"]]],[1,\"p\",[[0,[],0,\"So you can add the most important tag which you want to show up in your theme, but also add related tags which are less important.\"]]],[1,\"h3\",[[0,[],0,\"Private tags\"]]],[1,\"p\",[[0,[],0,\"Sometimes you may want to assign a post a specific tag, but you don't necessarily want that tag appearing in the theme or creating an archive page. In Ghost, hashtags are private and can be used for special styling.\"]]],[1,\"p\",[[0,[],0,\"For example, if you sometimes publish posts with video content - you might want your theme to adapt and get rid of the sidebar for these posts, to give more space for an embedded video to fill the screen. In this case, you could use private tags to tell your theme what to do.\"]]],[1,\"blockquote\",[[0,[1,2],1,\"News\"],[0,[],1,\", #video\"]]],[1,\"p\",[[0,[],0,\"Here, the theme would assign the post publicly displayed tags of News - but it would also keep a private record of the post being tagged with #video. In your theme, you could then look for private tags conditionally and give them special formatting. \"]]],[1,\"blockquote\",[[0,[1],0,\"You can find documentation for theme development techniques like this and many more over on Ghost's extensive \"],[0,[3],1,\"theme docs\"],[0,[],1,\".\"]]],[1,\"h2\",[[0,[],0,\"Dynamic routing\"]]],[1,\"p\",[[0,[],0,\"Dynamic routing gives you the ultimate freedom to build a custom publication to suit your needs. Routes are rules that map URL patterns to your content and templates. \"]]],[1,\"p\",[[0,[],0,\"You may not want content tagged with \"],[0,[0],1,\"News\"],[0,[],0,\" to exist on: \"],[0,[0],1,\"example.com/tag/news\"],[0,[],0,\". Instead, you want it to exist on \"],[0,[0],1,\"example.com/news\"],[0,[],0,\" .\"]]],[1,\"p\",[[0,[],0,\"In this case you can use dynamic routes to create customised collections of content on your site. It's also possible to use multiple templates in your theme to render each content type differently.\"]]],[1,\"p\",[[0,[],0,\"There are lots of use cases for dynamic routing with Ghost, here are a few common examples: \"]]],[3,\"ul\",[[[0,[],0,\"Setting a custom home page with its own template\"]],[[0,[],0,\"Having separate content hubs for blog and podcast, that render differently, and have custom RSS feeds to support two types of content\"]],[[0,[],0,\"Creating a founders column as a unique view, by filtering content created by specific authors\"]],[[0,[],0,\"Including dates in permalinks for your posts\"]],[[0,[],0,\"Setting posts to have a URL relative to their primary tag like \"],[0,[0],1,\"example.com/europe/story-title/\"],[1,[],0,0]]]],[1,\"blockquote\",[[0,[1],0,\"Dynamic routing can be configured in Ghost using \"],[0,[4],1,\"YAML\"],[0,[],0,\" files. Read our dynamic routing \"],[0,[5],1,\"documentation\"],[0,[],1,\" for further details.\"]]],[1,\"h2\",[[0,[],0,\"Next: Apps & Integrations\"]]],[1,\"p\",[[0,[],0,\"Work with all your favourite apps and tools using our \"],[0,[6],1,\"integrations\"],[0,[],0,\", or create your own custom integrations with webhooks.\"]]],[1,\"p\",[]]],\"ghostVersion\":\"3.0\"}","html":"

Sensible tagging

You can think of tags like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of related content.

When you create content for your publication you can assign tags to help differentiate between categories of content.

For example you may tag some content with News and other content with Podcast, which would create two distinct categories of content listed on /tag/news/ and /tag/podcast/, respectively.

If you tag a post with both News and Podcast - then it appears in both sections. Tag archives are like dedicated home-pages for each category of content that you have. They have their own pages, their own RSS feeds, and can support their own cover images and meta data.

The primary tag

Inside the Ghost editor, you can drag and drop tags into a specific order. The first tag in the list is always given the most importance, and some themes will only display the primary tag (the first tag in the list) by default.

News, Technology, Startup

So you can add the most important tag which you want to show up in your theme, but also add related tags which are less important.

Private tags

Sometimes you may want to assign a post a specific tag, but you don't necessarily want that tag appearing in the theme or creating an archive page. In Ghost, hashtags are private and can be used for special styling.

For example, if you sometimes publish posts with video content - you might want your theme to adapt and get rid of the sidebar for these posts, to give more space for an embedded video to fill the screen. In this case, you could use private tags to tell your theme what to do.

News, #video

Here, the theme would assign the post publicly displayed tags of News - but it would also keep a private record of the post being tagged with #video. In your theme, you could then look for private tags conditionally and give them special formatting.

You can find documentation for theme development techniques like this and many more over on Ghost's extensive theme docs.

Dynamic routing

Dynamic routing gives you the ultimate freedom to build a custom publication to suit your needs. Routes are rules that map URL patterns to your content and templates.

You may not want content tagged with News to exist on: example.com/tag/news. Instead, you want it to exist on example.com/news .

In this case you can use dynamic routes to create customised collections of content on your site. It's also possible to use multiple templates in your theme to render each content type differently.

There are lots of use cases for dynamic routing with Ghost, here are a few common examples:

Dynamic routing can be configured in Ghost using YAML files. Read our dynamic routing documentation for further details.

Next: Apps & Integrations

Work with all your favourite apps and tools using our integrations, or create your own custom integrations with webhooks.

","comment_id":"6050a6f2d65ddc29a4f42146","plaintext":"Sensible tagging\nYou can think of tags like Gmail labels. By tagging posts with one or more\nkeyword, you can organise articles into buckets of related content.\n\nWhen you create content for your publication you can assign tags to help\ndifferentiate between categories of content. \n\nFor example you may tag some content with News and other content with Podcast,\nwhich would create two distinct categories of content listed on /tag/news/ and \n/tag/podcast/, respectively.\n\nIf you tag a post with both News and Podcast - then it appears in both sections.\nTag archives are like dedicated home-pages for each category of content that you\nhave. They have their own pages, their own RSS feeds, and can support their own\ncover images and meta data.\n\nThe primary tag\nInside the Ghost editor, you can drag and drop tags into a specific order. The\nfirst tag in the list is always given the most importance, and some themes will\nonly display the primary tag (the first tag in the list) by default. \n\n> News, Technology, Startup\nSo you can add the most important tag which you want to show up in your theme,\nbut also add related tags which are less important.\n\nPrivate tags\nSometimes you may want to assign a post a specific tag, but you don't\nnecessarily want that tag appearing in the theme or creating an archive page. In\nGhost, hashtags are private and can be used for special styling.\n\nFor example, if you sometimes publish posts with video content - you might want\nyour theme to adapt and get rid of the sidebar for these posts, to give more\nspace for an embedded video to fill the screen. In this case, you could use\nprivate tags to tell your theme what to do.\n\n> News, #video\nHere, the theme would assign the post publicly displayed tags of News - but it\nwould also keep a private record of the post being tagged with #video. In your\ntheme, you could then look for private tags conditionally and give them special\nformatting. \n\n> You can find documentation for theme development techniques like this and many\nmore over on Ghost's extensive theme docs [https://ghost.org/docs/themes/].\nDynamic routing\nDynamic routing gives you the ultimate freedom to build a custom publication to\nsuit your needs. Routes are rules that map URL patterns to your content and\ntemplates. \n\nYou may not want content tagged with News to exist on: example.com/tag/news.\nInstead, you want it to exist on example.com/news .\n\nIn this case you can use dynamic routes to create customised collections of\ncontent on your site. It's also possible to use multiple templates in your theme\nto render each content type differently.\n\nThere are lots of use cases for dynamic routing with Ghost, here are a few\ncommon examples: \n\n * Setting a custom home page with its own template\n * Having separate content hubs for blog and podcast, that render differently,\n and have custom RSS feeds to support two types of content\n * Creating a founders column as a unique view, by filtering content created by\n specific authors\n * Including dates in permalinks for your posts\n * Setting posts to have a URL relative to their primary tag like \n example.com/europe/story-title/\n \n\n> Dynamic routing can be configured in Ghost using YAML\n[http://yaml.org/spec/1.2/spec.html] files. Read our dynamic routing \ndocumentation [https://ghost.org/docs/themes/routing/] for further details.\nNext: Apps & Integrations\nWork with all your favourite apps and tools using our integrations\n[__GHOST_URL__/apps-integrations/], or create your own custom integrations with\nwebhooks.","feature_image":"https://static.ghost.org/v3.0.0/images/organising-your-content.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14","published_at":"2021-03-16 12:39:16","custom_excerpt":"Ghost has a flexible organisational taxonomy called tags and the ability to create custom site structures using dynamic routes.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f2d65ddc29a4f42148","uuid":"a10c7e14-c89d-412f-8b8e-a2a6a6ff9475","title":"Managing admin settings","slug":"admin-settings","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}]],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v1.0.0/images/private.png\"}]],\"markups\":[[\"em\"],[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/pricing/\"]],[\"a\",[\"href\",\"__GHOST_URL__/organising-content/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Make your site private\"]]],[1,\"p\",[[0,[],0,\"If you've got a publication that you don't want the world to see yet because it's not ready to launch, you can hide your Ghost site behind a basic shared pass-phrase.\"]]],[1,\"p\",[[0,[],0,\"You can toggle this preference on at the bottom of Ghost's General Settings:\"]]],[10,0],[1,\"p\",[[0,[],0,\"Ghost will give you a short, randomly generated pass-phrase which you can share with anyone who needs access to the site while you're working on it. While this setting is enabled, all search engine optimisation features will be switched off to help keep your site under the radar.\"]]],[1,\"p\",[[0,[],0,\"Do remember though, this is \"],[0,[0],1,\"not\"],[0,[],0,\" secure authentication. You shouldn't rely on this feature for protecting important private data. It's just a simple, shared pass-phrase for some very basic privacy.\"]]],[1,\"h2\",[[0,[],0,\"Invite your team \"]]],[1,\"p\",[[0,[],0,\"Ghost has a number of different user roles for your team:\"]]],[1,\"p\",[[0,[1],1,\"Contributors\"],[1,[],0,0],[0,[],0,\"This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are \"],[0,[1],1,\"untrusted\"],[0,[],0,\" users with the most basic access to your publication.\"]]],[1,\"p\",[[0,[1],1,\"Authors\"],[1,[],0,1],[0,[],0,\"Authors are the 2nd user level in Ghost. Authors can write, edit and publish their own posts. Authors are \"],[0,[1],1,\"trusted\"],[0,[],0,\" users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.\"]]],[1,\"p\",[[0,[1],1,\"Editors\"],[1,[],0,2],[0,[],0,\"Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.\"]]],[1,\"p\",[[0,[1],1,\"Administrators\"],[1,[],0,3],[0,[],0,\"The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.\"],[1,[],0,4],[1,[],0,5],[0,[1],1,\"The Owner\"],[1,[],0,6],[0,[],0,\"There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using \"],[0,[2,1],2,\"Ghost(Pro)\"],[0,[],0,\".\"]]],[1,\"blockquote\",[[0,[0],1,\"It's a good idea to ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.\"]]],[1,\"h2\",[[0,[],0,\"Next: Organising content\"]]],[1,\"p\",[[0,[],0,\"Find out how to \"],[0,[3],1,\"organise your content\"],[0,[],0,\" with sensible tags and authors, or for more advanced configurations, how to create custom content structures using dynamic routing.\"]]]],\"ghostVersion\":\"3.0\"}","html":"

Make your site private

If you've got a publication that you don't want the world to see yet because it's not ready to launch, you can hide your Ghost site behind a basic shared pass-phrase.

You can toggle this preference on at the bottom of Ghost's General Settings:

Ghost will give you a short, randomly generated pass-phrase which you can share with anyone who needs access to the site while you're working on it. While this setting is enabled, all search engine optimisation features will be switched off to help keep your site under the radar.

Do remember though, this is not secure authentication. You shouldn't rely on this feature for protecting important private data. It's just a simple, shared pass-phrase for some very basic privacy.

Invite your team

Ghost has a number of different user roles for your team:

Contributors
This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are untrusted users with the most basic access to your publication.

Authors
Authors are the 2nd user level in Ghost. Authors can write, edit  and publish their own posts. Authors are trusted users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.

Editors
Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.

Administrators
The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.

The Owner
There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using Ghost(Pro).

It's a good idea to ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.

Next: Organising content

Find out how to organise your content with sensible tags and authors, or for more advanced configurations, how to create custom content structures using dynamic routing.

","comment_id":"6050a6f2d65ddc29a4f42148","plaintext":"Make your site private\nIf you've got a publication that you don't want the world to see yet because\nit's not ready to launch, you can hide your Ghost site behind a basic shared\npass-phrase.\n\nYou can toggle this preference on at the bottom of Ghost's General Settings:\n\nGhost will give you a short, randomly generated pass-phrase which you can share\nwith anyone who needs access to the site while you're working on it. While this\nsetting is enabled, all search engine optimisation features will be switched off\nto help keep your site under the radar.\n\nDo remember though, this is not secure authentication. You shouldn't rely on\nthis feature for protecting important private data. It's just a simple, shared\npass-phrase for some very basic privacy.\n\nInvite your team \nGhost has a number of different user roles for your team:\n\nContributors\nThis is the base user level in Ghost. Contributors can create and edit their own\ndraft posts, but they are unable to edit drafts of others or publish posts.\nContributors are untrusted users with the most basic access to your publication.\n\nAuthors\nAuthors are the 2nd user level in Ghost. Authors can write, edit  and publish\ntheir own posts. Authors are trusted users. If you don't trust users to be\nallowed to publish their own posts, they should be set as Contributors.\n\nEditors\nEditors are the 3rd user level in Ghost. Editors can do everything that an\nAuthor can do, but they can also edit and publish the posts of others - as well\nas their own. Editors can also invite new Contributors & Authors to the site.\n\nAdministrators\nThe top user level in Ghost is Administrator. Again, administrators can do\neverything that Authors and Editors can do, but they can also edit all site\nsettings and data, not just content. Additionally, administrators have full\naccess to invite, manage or remove any other user of the site.\n\nThe Owner\nThere is only ever one owner of a Ghost site. The owner is a special user which\nhas all the same permissions as an Administrator, but with two exceptions: The\nOwner can never be deleted. And in some circumstances the owner will have access\nto additional special settings if applicable. For example: billing details, if\nusing Ghost(Pro) [https://ghost.org/pricing/].\n\n> It's a good idea to ask all of your users to fill out their user profiles,\nincluding bio and social links. These will populate rich structured data for\nposts and generally create more opportunities for themes to fully populate their\ndesign.\nNext: Organising content\nFind out how to organise your content [__GHOST_URL__/organising-content/] with\nsensible tags and authors, or for more advanced configurations, how to create\ncustom content structures using dynamic routing.","feature_image":"https://static.ghost.org/v3.0.0/images/admin-settings.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14","published_at":"2021-03-16 12:39:17","custom_excerpt":"There are a couple of things to do next while you're getting set up: making your site private and inviting your team.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f2d65ddc29a4f4214a","uuid":"548f8a99-52f3-4f11-aea7-38de578c0a6f","title":"Publishing options","slug":"publishing-options","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[[\"code\",{\"code\":\"{\\n \\\"@context\\\": \\\"https://schema.org\\\",\\n \\\"@type\\\": \\\"Article\\\",\\n \\\"publisher\\\": {\\n \\\"@type\\\": \\\"Organization\\\",\\n \\\"name\\\": \\\"Publishing options\\\",\\n \\\"logo\\\": \\\"https://static.ghost.org/ghost-logo.svg\\\"\\n },\\n \\\"author\\\": {\\n \\\"@type\\\": \\\"Person\\\",\\n \\\"name\\\": \\\"Ghost\\\",\\n \\\"url\\\": \\\"http://demo.ghost.io/author/ghost/\\\",\\n \\\"sameAs\\\": []\\n },\\n \\\"headline\\\": \\\"Publishing options\\\",\\n \\\"url\\\": \\\"http://demo.ghost.io/publishing-options\\\",\\n \\\"datePublished\\\": \\\"2018-08-08T11:44:00.000Z\\\",\\n \\\"dateModified\\\": \\\"2018-08-09T12:06:21.000Z\\\",\\n \\\"keywords\\\": \\\"Getting Started\\\",\\n \\\"description\\\": \\\"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.\\\"\\n}\\n \"}]],\"markups\":[[\"strong\"],[\"a\",[\"href\",\"https://schema.org/\"]],[\"a\",[\"href\",\"https://search.google.com/structured-data/testing-tool\",\"rel\",\"noreferrer nofollow noopener\"]],[\"a\",[\"href\",\"__GHOST_URL__/admin-settings/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Distribute your content\"]]],[1,\"p\",[[0,[],0,\"Access the post settings menu by clicking the settings icon in the top right hand corner of the editor and discover everything you need to get your content ready for publishing. This is where you can edit things like tags, post URL, publish date and custom meta data.\"]]],[1,\"h2\",[[0,[],0,\"Feature images, URL & excerpts\"]]],[1,\"p\",[[0,[],0,\"Insert your post feature image from the very top of the post settings menu. Consider resizing or optimising your image first to ensure it's an appropriate size. Below this, you can set your post URL, publish date and add a custom excerpt.\"]]],[1,\"h2\",[[0,[],0,\"Tags & authors\"]]],[1,\"p\",[[0,[],0,\"You can easily add multiple tags and authors to any post to filter and organise the relationships between your content in Ghost.\"]]],[1,\"h2\",[[0,[],0,\"Structured data & SEO\"]]],[1,\"p\",[[0,[],0,\"There's no need to hard code your meta data. In fact, Ghost will generate default meta data automatically using the content in your post.\"]]],[1,\"p\",[[0,[],0,\"Alternatively, you can override this by adding a custom meta title and description, as well as unique information for social media sharing cards on Facebook and Twitter.\"]]],[1,\"p\",[[0,[],0,\"It's also possible to set custom canonicals, which is useful for guest posts or curated lists of external links.\"]]],[1,\"p\",[[0,[],0,\"Ghost will automatically implement \"],[0,[0],1,\"structured data\"],[0,[],0,\" for your publication using JSON-LD to further optimise your content.\"]]],[10,0],[1,\"p\",[[0,[],0,\"You can test that the structured data \"],[0,[1],1,\"schema\"],[0,[],0,\" on your site is working as it should using \"],[0,[2],1,\"Google’s structured data tool\"],[0,[],0,\". \"]]],[1,\"h2\",[[0,[],0,\"Code injection\"]]],[1,\"p\",[[0,[],0,\"This tool allows you to inject code on a per post or page basis, or across your entire site. This means you can modify CSS, add unique tracking codes, or add other scripts to the head or foot of your publication without making edits to your theme files. \"]]],[1,\"p\",[[0,[0],1,\"To add code site-wide\"],[0,[],0,\", use the code injection tool in the main admin menu. This is useful for adding a Google Analytics tracking code, or to start tracking with any other analytics tool.\"]]],[1,\"p\",[[0,[0],1,\"To add code to a post or page\"],[0,[],0,\", use the code injection tool within the post settings menu. This is useful if you want to add art direction, scripts or styles that are only applicable to one post or page.\"]]],[1,\"h2\",[[0,[],0,\"Next: Admin settings\"]]],[1,\"p\",[[0,[],0,\"Now you understand how to create and optimise content, let's explore some \"],[0,[3],1,\"admin settings\"],[0,[],0,\" so you can invite your team and start collaborating.\"]]]],\"ghostVersion\":\"3.0\"}","html":"

Distribute your content

Access the post settings menu by clicking the settings icon in the top right hand corner of the editor and discover everything you need to get your content ready for publishing. This is where you can edit things like tags, post URL, publish date and custom meta data.

Feature images, URL & excerpts

Insert your post feature image from the very top of the post settings menu. Consider resizing or optimising your image first to ensure it's an appropriate size. Below this, you can set your post URL, publish date and add a custom excerpt.

Tags & authors

You can easily add multiple tags and authors to any post to filter and organise the relationships between your content in Ghost.

Structured data & SEO

There's no need to hard code your meta data. In fact, Ghost will generate default meta data automatically using the content in your post.

Alternatively, you can override this by adding a custom meta title and description, as well as unique information for social media sharing cards on Facebook and Twitter.

It's also possible to set custom canonicals, which is useful for guest posts or curated lists of external links.

Ghost will automatically implement structured data for your publication using JSON-LD to further optimise your content.

{\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"Article\",\n    \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Publishing options\",\n        \"logo\": \"https://static.ghost.org/ghost-logo.svg\"\n    },\n    \"author\": {\n        \"@type\": \"Person\",\n        \"name\": \"Ghost\",\n        \"url\": \"http://demo.ghost.io/author/ghost/\",\n        \"sameAs\": []\n    },\n    \"headline\": \"Publishing options\",\n    \"url\": \"http://demo.ghost.io/publishing-options\",\n    \"datePublished\": \"2018-08-08T11:44:00.000Z\",\n    \"dateModified\": \"2018-08-09T12:06:21.000Z\",\n    \"keywords\": \"Getting Started\",\n    \"description\": \"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.\"\n}\n    

You can test that the structured data schema on your site is working as it should using Google’s structured data tool.

Code injection

This tool allows you to inject code on a per post or page basis, or across your entire site. This means you can modify CSS, add unique tracking codes, or add other scripts to the head or foot of your publication without making edits to your theme files.

To add code site-wide, use the code injection tool in the main admin menu. This is useful for adding a Google Analytics tracking code, or to start tracking with any other analytics tool.

To add code to a post or page, use the code injection tool within the post settings menu. This is useful if you want to add art direction, scripts or styles that are only applicable to one post or page.

Next: Admin settings

Now you understand how to create and optimise content, let's explore some admin settings so you can invite your team and start collaborating.

","comment_id":"6050a6f2d65ddc29a4f4214a","plaintext":"Distribute your content\nAccess the post settings menu by clicking the settings icon in the top right\nhand corner of the editor and discover everything you need to get your content\nready for publishing. This is where you can edit things like tags, post URL,\npublish date and custom meta data.\n\nFeature images, URL & excerpts\nInsert your post feature image from the very top of the post settings menu.\nConsider resizing or optimising your image first to ensure it's an appropriate\nsize. Below this, you can set your post URL, publish date and add a custom\nexcerpt.\n\nTags & authors\nYou can easily add multiple tags and authors to any post to filter and organise\nthe relationships between your content in Ghost.\n\nStructured data & SEO\nThere's no need to hard code your meta data. In fact, Ghost will generate\ndefault meta data automatically using the content in your post.\n\nAlternatively, you can override this by adding a custom meta title and\ndescription, as well as unique information for social media sharing cards on\nFacebook and Twitter.\n\nIt's also possible to set custom canonicals, which is useful for guest posts or\ncurated lists of external links.\n\nGhost will automatically implement structured data for your publication using\nJSON-LD to further optimise your content.\n\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Article\",\n \"publisher\": {\n \"@type\": \"Organization\",\n \"name\": \"Publishing options\",\n \"logo\": \"https://static.ghost.org/ghost-logo.svg\"\n },\n \"author\": {\n \"@type\": \"Person\",\n \"name\": \"Ghost\",\n \"url\": \"http://demo.ghost.io/author/ghost/\",\n \"sameAs\": []\n },\n \"headline\": \"Publishing options\",\n \"url\": \"http://demo.ghost.io/publishing-options\",\n \"datePublished\": \"2018-08-08T11:44:00.000Z\",\n \"dateModified\": \"2018-08-09T12:06:21.000Z\",\n \"keywords\": \"Getting Started\",\n \"description\": \"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.\"\n}\n \n\nYou can test that the structured data schema [https://schema.org/] on your site\nis working as it should using Google’s structured data tool\n[https://search.google.com/structured-data/testing-tool]. \n\nCode injection\nThis tool allows you to inject code on a per post or page basis, or across your\nentire site. This means you can modify CSS, add unique tracking codes, or add\nother scripts to the head or foot of your publication without making edits to\nyour theme files. \n\nTo add code site-wide, use the code injection tool in the main admin menu. This\nis useful for adding a Google Analytics tracking code, or to start tracking with\nany other analytics tool.\n\nTo add code to a post or page, use the code injection tool within the post\nsettings menu. This is useful if you want to add art direction, scripts or\nstyles that are only applicable to one post or page.\n\nNext: Admin settings\nNow you understand how to create and optimise content, let's explore some admin\nsettings [__GHOST_URL__/admin-settings/] so you can invite your team and start\ncollaborating.","feature_image":"https://static.ghost.org/v3.0.0/images/publishing-options.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14","published_at":"2021-03-16 12:39:18","custom_excerpt":"The Ghost editor post settings menu has everything you need to fully optimise and distribute your content effectively.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f3d65ddc29a4f4214c","uuid":"321f0edc-1b06-47cb-b88e-5cd31ba14f2a","title":"Writing posts with Ghost ✍️","slug":"the-editor","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v2.0.0/images/formatting-editor-demo.gif\"}],[\"code\",{\"code\":\"
\\n
\\n {{> \\\"site-nav\\\"}}\\n
\\n
\"}],[\"bookmark\",{\"type\":\"bookmark\",\"url\":\"https://ghost.org/\",\"metadata\":{\"url\":\"https://ghost.org\",\"title\":\"Ghost: The #1 open source headless Node.js CMS\",\"description\":\"The world’s most popular modern open source publishing platform. A headless Node.js CMS used by Apple, Sky News, Tinder and thousands more. MIT licensed, with 30k+ stars on Github.\",\"author\":null,\"publisher\":\"Ghost\",\"thumbnail\":\"https://ghost.org/images/meta/Ghost.png\",\"icon\":\"https://ghost.org/icons/icon-512x512.png?v=188b8b6d743c6338ba2eab2e35bab4f5\"}}],[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/image-sizes-ghost-editor.png\"}],[\"gallery\",{\"images\":[{\"fileName\":\"gallery-sample-1.jpg\",\"row\":0,\"width\":6000,\"height\":4000,\"src\":\"https://static.ghost.org/v3.0.0/images/gallery-sample-1.jpg\"},{\"fileName\":\"gallery-sample-2.jpg\",\"row\":0,\"width\":5746,\"height\":3831,\"src\":\"https://static.ghost.org/v3.0.0/images/gallery-sample-2.jpg\"},{\"fileName\":\"gallery-sample-3.jpg\",\"row\":0,\"width\":5872,\"height\":3915,\"src\":\"https://static.ghost.org/v3.0.0/images/gallery-sample-3.jpg\"}]}]],\"markups\":[[\"strong\"],[\"code\"],[\"a\",[\"href\",\"__GHOST_URL__/publishing-options/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Just start writing\"]]],[1,\"p\",[[0,[],0,\"Ghost has a powerful visual editor with familiar formatting options, as well as the ability to add dynamic content.\"]]],[1,\"p\",[[0,[],0,\"Select your text to add formatting such as headers or to create links. Or use Markdown shortcuts to do the work for you - if that's your thing. \"]]],[10,0],[1,\"h2\",[[0,[],0,\"Rich editing at your fingertips\"]]],[1,\"p\",[[0,[],0,\"The editor can also handle rich media objects, called \"],[0,[0],1,\"cards\"],[0,[],0,\", which can be organised and re-ordered using drag and drop. \"]]],[1,\"p\",[[0,[],0,\"You can insert a card either by clicking the \"],[0,[1],1,\"+\"],[0,[],0,\" button, or typing \"],[0,[1],1,\"/\"],[0,[],0,\" on a new line to search for a particular card. This allows you to efficiently insert\"],[0,[0],1,\" images\"],[0,[],0,\", \"],[0,[0],1,\"markdown\"],[0,[],0,\", \"],[0,[0],1,\"html, embeds \"],[0,[],0,\"and more.\"]]],[1,\"p\",[[0,[0],1,\"For example\"],[0,[],0,\":\"]]],[3,\"ul\",[[[0,[],0,\"Insert a video from YouTube directly by pasting the URL\"]],[[0,[],0,\"Create unique content like buttons or forms using the HTML card\"]],[[0,[],0,\"Need to share some code? Embed code blocks directly \"]]]],[10,1],[1,\"p\",[[0,[],0,\"It's also possible to share links from across the web in a visual way using bookmark cards that automatically render information from a websites meta data. Paste any URL to try it out: \"]]],[10,2],[1,\"h2\",[[0,[],0,\"Working with images in posts\"]]],[1,\"p\",[[0,[],0,\"You can add images to your posts in many ways:\"]]],[3,\"ul\",[[[0,[],0,\"Upload from your computer\"]],[[0,[],0,\"Click and drag an image into the browser\"]],[[0,[],0,\"Paste directly into the editor from your clipboard\"]],[[0,[],0,\"Insert using a URL\"]]]],[1,\"h3\",[[0,[],0,\"Image sizes\"]]],[1,\"p\",[[0,[],0,\"Once inserted you can blend images beautifully into your content at different sizes and add captions and alt tags wherever needed.\"]]],[10,3],[1,\"h3\",[[0,[],0,\"Image galleries\"]]],[1,\"p\",[[0,[],0,\"Tell visual stories using the gallery card to add up to 9 images that will display as a responsive image gallery: \"]]],[10,4],[1,\"h3\",[[0,[],0,\"Image optimisation\"]]],[1,\"p\",[[0,[],0,\"Ghost will automatically resize and optimise your images with lossless compression. Your posts will be fully optimised for the web without any extra effort on your part.\"]]],[1,\"h2\",[[0,[],0,\"Next: Publishing Options\"]]],[1,\"p\",[[0,[],0,\"Once your post is looking good, you'll want to use the \"],[0,[2],1,\"publishing options\"],[0,[],0,\" to ensure it gets distributed in the right places, with custom meta data, feature images and more.\"]]],[1,\"p\",[]]],\"ghostVersion\":\"3.0\"}","html":"

Just start writing

Ghost has a powerful visual editor with familiar formatting options, as well as the ability to add dynamic content.

Select your text to add formatting such as headers or to create links. Or use Markdown shortcuts to do the work for you - if that's your thing.

Rich editing at your fingertips

The editor can also handle rich media objects, called cards, which can be organised and re-ordered using drag and drop.

You can insert a card either by clicking the  +  button, or typing  /  on a new line to search for a particular card. This allows you to efficiently insert images, markdown, html, embeds and more.

For example:

<header class=\"site-header outer\">\n    <div class=\"inner\">\n        {{> \"site-nav\"}}\n    </div>\n</header>

It's also possible to share links from across the web in a visual way using bookmark cards that automatically render information from a websites meta data. Paste any URL to try it out:

Ghost: The #1 open source headless Node.js CMS
The world’s most popular modern open source publishing platform. A headless Node.js CMS used by Apple, Sky News, Tinder and thousands more. MIT licensed, with 30k+ stars on Github.
Ghost

Working with images in posts

You can add images to your posts in many ways:

Image sizes

Once inserted you can blend images beautifully into your content at different sizes and add captions and alt tags wherever needed.

Image galleries

Tell visual stories using the gallery card to add up to 9 images that will display as a responsive image gallery:

Image optimisation

Ghost will automatically resize and optimise your images with lossless compression. Your posts will be fully optimised for the web without any extra effort on your part.

Next: Publishing Options

Once your post is looking good, you'll want to use the publishing options to ensure it gets distributed in the right places, with custom meta data, feature images and more.

","comment_id":"6050a6f3d65ddc29a4f4214c","plaintext":"Just start writing\nGhost has a powerful visual editor with familiar formatting options, as well as\nthe ability to add dynamic content.\n\nSelect your text to add formatting such as headers or to create links. Or use\nMarkdown shortcuts to do the work for you - if that's your thing. \n\nRich editing at your fingertips\nThe editor can also handle rich media objects, called cards, which can be\norganised and re-ordered using drag and drop. \n\nYou can insert a card either by clicking the+ button, or typing/ on a new line\nto search for a particular card. This allows you to efficiently insert images, \nmarkdown, html, embeds and more.\n\nFor example:\n\n * Insert a video from YouTube directly by pasting the URL\n * Create unique content like buttons or forms using the HTML card\n * Need to share some code? Embed code blocks directly \n\n
\n
\n {{> \"site-nav\"}}\n
\n
\n\nIt's also possible to share links from across the web in a visual way using\nbookmark cards that automatically render information from a websites meta data.\nPaste any URL to try it out: \n\nGhost: The #1 open source headless Node.js CMSThe world’s most popular modern\nopen source publishing platform. A headless Node.js CMS used by Apple, Sky\nNews,\nTinder and thousands more. MIT licensed, with 30k+ stars on Github.Ghost\n[https://ghost.org/]Working with images in posts\nYou can add images to your posts in many ways:\n\n * Upload from your computer\n * Click and drag an image into the browser\n * Paste directly into the editor from your clipboard\n * Insert using a URL\n\nImage sizes\nOnce inserted you can blend images beautifully into your content at different\nsizes and add captions and alt tags wherever needed.\n\nImage galleries\nTell visual stories using the gallery card to add up to 9 images that will\ndisplay as a responsive image gallery: \n\nImage optimisation\nGhost will automatically resize and optimise your images with lossless\ncompression. Your posts will be fully optimised for the web without any extra\neffort on your part.\n\nNext: Publishing Options\nOnce your post is looking good, you'll want to use the publishing options\n[__GHOST_URL__/publishing-options/] to ensure it gets distributed in the right\nplaces, with custom meta data, feature images and more.","feature_image":"https://static.ghost.org/v3.0.0/images/writing-posts-with-ghost.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:15","updated_at":"2021-03-16 12:39:15","published_at":"2021-03-16 12:39:19","custom_excerpt":"Discover familiar formatting options in a functional toolbar and the ability to add dynamic content seamlessly.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null},{"id":"6050a6f3d65ddc29a4f4214e","uuid":"503db28a-879a-4600-8ece-f5244423f5cf","title":"Welcome to Ghost","slug":"welcome","mobiledoc":"{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/integrations/\"]],[\"a\",[\"href\",\"https://ghost.org/pricing\"]],[\"a\",[\"href\",\"https://github.com/TryGhost\"]],[\"a\",[\"href\",\"__GHOST_URL__/the-editor/\"]]],\"sections\":[[1,\"h2\",[[0,[0],1,\"A few things you should know\"]]],[3,\"ol\",[[[0,[],0,\"Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for. \"]],[[0,[],0,\"The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog. \"]],[[0,[],0,\"It's possible to work with all your favourite tools and apps with hundreds of \"],[0,[1],1,\"integrations\"],[0,[],0,\" to speed up your workflows, connect email lists, build communities and much more.\"]]]],[1,\"h2\",[[0,[],0,\"Behind the scenes\"]]],[1,\"p\",[[0,[],0,\"Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our \"],[0,[2],1,\"Ghost(Pro)\"],[0,[],0,\" service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.\"]]],[1,\"p\",[[0,[],0,\"The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source \"],[0,[3],1,\"community\"],[0,[],0,\".\"]]],[1,\"h2\",[[0,[],0,\"Next up, the editor\"]]],[1,\"p\",[[0,[],0,\"The main thing you'll want to read about next is probably: \"],[0,[4],1,\"the Ghost editor\"],[0,[],0,\". This is where the good stuff happens.\"]]],[1,\"blockquote\",[[0,[],0,\"By the way, once you're done reading, you can simply delete the default Ghost user from your team to remove all of these introductory posts! \"]]]],\"ghostVersion\":\"3.0\"}","html":"

A few things you should know

  1. Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for.
  2. The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog.
  3. It's possible to work with all your favourite tools and apps with hundreds of integrations to speed up your workflows, connect email lists, build communities and much more.

Behind the scenes

Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our Ghost(Pro) service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.

The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source community.

Next up, the editor

The main thing you'll want to read about next is probably: the Ghost editor. This is where the good stuff happens.

By the way, once you're done reading, you can simply delete the default Ghost user from your team to remove all of these introductory posts!
","comment_id":"6050a6f3d65ddc29a4f4214e","plaintext":"A few things you should know\n 1. Ghost is designed for ambitious, professional publishers who want to\n actively build a business around their content. That's who it works best\n for. \n 2. The entire platform can be modified and customised to suit your needs. It's\n very powerful, but does require some knowledge of code. Ghost is not\n necessarily a good platform for beginners or people who just want a simple\n personal blog. \n 3. It's possible to work with all your favourite tools and apps with hundreds\n of integrations [https://ghost.org/integrations/] to speed up your\n workflows, connect email lists, build communities and much more.\n\nBehind the scenes\nGhost is made by an independent non-profit organisation called the Ghost\nFoundation. We are 100% self funded by revenue from our Ghost(Pro)\n[https://ghost.org/pricing] service, and every penny we make is re-invested into\nfunding further development of free, open source technology for modern\npublishing.\n\nThe version of Ghost you are looking at right now would not have been made\npossible without generous contributions from the open source community\n[https://github.com/TryGhost].\n\nNext up, the editor\nThe main thing you'll want to read about next is probably: the Ghost editor\n[__GHOST_URL__/the-editor/]. This is where the good stuff happens.\n\n> By the way, once you're done reading, you can simply delete the default Ghost\nuser from your team to remove all of these introductory posts!","feature_image":"https://static.ghost.org/v3.0.0/images/welcome-to-ghost.png","featured":0,"type":"post","status":"published","locale":null,"visibility":"public","email_recipient_filter":"none","author_id":"5951f5fca366002ebd5dbef7","created_at":"2021-03-16 12:39:15","updated_at":"2021-03-16 12:39:15","published_at":"2021-03-16 12:39:20","custom_excerpt":"Welcome, it's great to have you here.\nWe know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null}],"posts_meta":[],"users":[{"id":"1","name":"test","slug":"test","password":"$2a$10$NaxgG4QRNI0QbuHfA9ZOMuoSeWxjN9am8Wq67bP9uQbop//w1ryLG","email":"test@example.com","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"accessibility":null,"status":"active","locale":null,"visibility":"public","meta_title":null,"meta_description":null,"tour":null,"last_seen":"2021-03-18 12:14:19","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-18 12:14:19"},{"id":"5951f5fca366002ebd5dbef7","name":"Ghost","slug":"ghost","password":"$2a$10$KcAF9QIp0qq206ZZwENcOuBhhmEwNALXg5qCVELagkwwYKYdq4cii","email":"ghost-author@example.com","profile_image":"https://static.ghost.org/v3.0.0/images/ghost.png","cover_image":null,"bio":"You can delete this user to remove all the welcome posts","website":"https://ghost.org","location":"The Internet","facebook":"ghost","twitter":"ghost","accessibility":null,"status":"active","locale":null,"visibility":"public","meta_title":null,"meta_description":null,"tour":null,"last_seen":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"}],"posts_authors":[{"id":"6050a6f2d65ddc29a4f42143","post_id":"6050a6f2d65ddc29a4f42142","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f2d65ddc29a4f42145","post_id":"6050a6f2d65ddc29a4f42144","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f2d65ddc29a4f42147","post_id":"6050a6f2d65ddc29a4f42146","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f2d65ddc29a4f42149","post_id":"6050a6f2d65ddc29a4f42148","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f2d65ddc29a4f4214b","post_id":"6050a6f2d65ddc29a4f4214a","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f3d65ddc29a4f4214d","post_id":"6050a6f3d65ddc29a4f4214c","author_id":"5951f5fca366002ebd5dbef7","sort_order":0},{"id":"6050a6f3d65ddc29a4f4214f","post_id":"6050a6f3d65ddc29a4f4214e","author_id":"5951f5fca366002ebd5dbef7","sort_order":0}],"roles":[{"id":"6050a6f2d65ddc29a4f420e9","name":"Administrator","description":"Administrators","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ea","name":"Editor","description":"Editors","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420eb","name":"Author","description":"Authors","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ec","name":"Contributor","description":"Contributors","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ed","name":"Owner","description":"Blog Owner","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ee","name":"Admin Integration","description":"External Apps","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ef","name":"DB Backup Integration","description":"Internal DB Backup Client","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f0","name":"Scheduler Integration","description":"Internal Scheduler Client","created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"}],"roles_users":[{"id":"6050a6f2d65ddc29a4f42141","role_id":"6050a6f2d65ddc29a4f420eb","user_id":"5951f5fca366002ebd5dbef7"},{"id":"6050a6f3d65ddc29a4f42238","role_id":"6050a6f2d65ddc29a4f420ed","user_id":"1"}],"permissions":[{"id":"6050a6f2d65ddc29a4f420f1","name":"Export database","object_type":"db","action_type":"exportContent","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f2","name":"Import database","object_type":"db","action_type":"importContent","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f3","name":"Delete all content","object_type":"db","action_type":"deleteAllContent","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f4","name":"Send mail","object_type":"mail","action_type":"send","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f5","name":"Browse notifications","object_type":"notification","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f6","name":"Add notifications","object_type":"notification","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f7","name":"Delete notifications","object_type":"notification","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f8","name":"Browse posts","object_type":"post","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420f9","name":"Read posts","object_type":"post","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420fa","name":"Edit posts","object_type":"post","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420fb","name":"Add posts","object_type":"post","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420fc","name":"Delete posts","object_type":"post","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420fd","name":"Browse settings","object_type":"setting","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420fe","name":"Read settings","object_type":"setting","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f420ff","name":"Edit settings","object_type":"setting","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42100","name":"Generate slugs","object_type":"slug","action_type":"generate","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42101","name":"Browse tags","object_type":"tag","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42102","name":"Read tags","object_type":"tag","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42103","name":"Edit tags","object_type":"tag","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42104","name":"Add tags","object_type":"tag","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42105","name":"Delete tags","object_type":"tag","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42106","name":"Browse themes","object_type":"theme","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42107","name":"Edit themes","object_type":"theme","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42108","name":"Activate themes","object_type":"theme","action_type":"activate","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42109","name":"Upload themes","object_type":"theme","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210a","name":"Download themes","object_type":"theme","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210b","name":"Delete themes","object_type":"theme","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210c","name":"Browse users","object_type":"user","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210d","name":"Read users","object_type":"user","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210e","name":"Edit users","object_type":"user","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4210f","name":"Add users","object_type":"user","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42110","name":"Delete users","object_type":"user","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42111","name":"Assign a role","object_type":"role","action_type":"assign","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42112","name":"Browse roles","object_type":"role","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42113","name":"Browse invites","object_type":"invite","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42114","name":"Read invites","object_type":"invite","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42115","name":"Edit invites","object_type":"invite","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42116","name":"Add invites","object_type":"invite","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42117","name":"Delete invites","object_type":"invite","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42118","name":"Download redirects","object_type":"redirect","action_type":"download","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42119","name":"Upload redirects","object_type":"redirect","action_type":"upload","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211a","name":"Add webhooks","object_type":"webhook","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211b","name":"Edit webhooks","object_type":"webhook","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211c","name":"Delete webhooks","object_type":"webhook","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211d","name":"Browse integrations","object_type":"integration","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211e","name":"Read integrations","object_type":"integration","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4211f","name":"Edit integrations","object_type":"integration","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42120","name":"Add integrations","object_type":"integration","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42121","name":"Delete integrations","object_type":"integration","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42122","name":"Browse API keys","object_type":"api_key","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42123","name":"Read API keys","object_type":"api_key","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42124","name":"Edit API keys","object_type":"api_key","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42125","name":"Add API keys","object_type":"api_key","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42126","name":"Delete API keys","object_type":"api_key","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42127","name":"Browse Actions","object_type":"action","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42128","name":"Browse Members","object_type":"member","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42129","name":"Read Members","object_type":"member","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212a","name":"Edit Members","object_type":"member","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212b","name":"Add Members","object_type":"member","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212c","name":"Delete Members","object_type":"member","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212d","name":"Publish posts","object_type":"post","action_type":"publish","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212e","name":"Backup database","object_type":"db","action_type":"backupContent","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4212f","name":"Email preview","object_type":"email_preview","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42130","name":"Send test email","object_type":"email_preview","action_type":"sendTestEmail","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42131","name":"Browse emails","object_type":"email","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42132","name":"Read emails","object_type":"email","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42133","name":"Retry emails","object_type":"email","action_type":"retry","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42134","name":"Browse labels","object_type":"label","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42135","name":"Read labels","object_type":"label","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42136","name":"Edit labels","object_type":"label","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42137","name":"Add labels","object_type":"label","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42138","name":"Delete labels","object_type":"label","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42139","name":"Read member signin urls","object_type":"member_signin_url","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213a","name":"Read identities","object_type":"identity","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213b","name":"Auth Stripe Connect for Members","object_type":"members_stripe_connect","action_type":"auth","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213c","name":"Browse snippets","object_type":"snippet","action_type":"browse","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213d","name":"Read snippets","object_type":"snippet","action_type":"read","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213e","name":"Edit snippets","object_type":"snippet","action_type":"edit","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f4213f","name":"Add snippets","object_type":"snippet","action_type":"add","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"},{"id":"6050a6f2d65ddc29a4f42140","name":"Delete snippets","object_type":"snippet","action_type":"destroy","object_id":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"}],"permissions_users":[],"permissions_roles":[{"id":"6050a6f3d65ddc29a4f42156","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f1"},{"id":"6050a6f3d65ddc29a4f42157","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f2"},{"id":"6050a6f3d65ddc29a4f42158","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f3"},{"id":"6050a6f3d65ddc29a4f42159","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212e"},{"id":"6050a6f3d65ddc29a4f4215a","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f4"},{"id":"6050a6f3d65ddc29a4f4215b","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f5"},{"id":"6050a6f3d65ddc29a4f4215c","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f6"},{"id":"6050a6f3d65ddc29a4f4215d","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f7"},{"id":"6050a6f3d65ddc29a4f4215e","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f8"},{"id":"6050a6f3d65ddc29a4f4215f","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420f9"},{"id":"6050a6f3d65ddc29a4f42163","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212d"},{"id":"6050a6f3d65ddc29a4f42161","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420fb"},{"id":"6050a6f3d65ddc29a4f42162","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420fc"},{"id":"6050a6f3d65ddc29a4f42160","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420fa"},{"id":"6050a6f3d65ddc29a4f42164","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420fd"},{"id":"6050a6f3d65ddc29a4f42165","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420fe"},{"id":"6050a6f3d65ddc29a4f42166","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f420ff"},{"id":"6050a6f3d65ddc29a4f42167","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42100"},{"id":"6050a6f3d65ddc29a4f4216a","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42103"},{"id":"6050a6f3d65ddc29a4f4216b","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42104"},{"id":"6050a6f3d65ddc29a4f42169","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42102"},{"id":"6050a6f3d65ddc29a4f42168","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42101"},{"id":"6050a6f3d65ddc29a4f4216c","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42105"},{"id":"6050a6f3d65ddc29a4f4216d","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42106"},{"id":"6050a6f3d65ddc29a4f4216e","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42107"},{"id":"6050a6f3d65ddc29a4f42172","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210b"},{"id":"6050a6f3d65ddc29a4f4216f","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42108"},{"id":"6050a6f3d65ddc29a4f42170","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42109"},{"id":"6050a6f3d65ddc29a4f42171","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210a"},{"id":"6050a6f3d65ddc29a4f42173","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210c"},{"id":"6050a6f3d65ddc29a4f42177","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42110"},{"id":"6050a6f3d65ddc29a4f42174","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210d"},{"id":"6050a6f3d65ddc29a4f42176","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210f"},{"id":"6050a6f3d65ddc29a4f42175","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4210e"},{"id":"6050a6f3d65ddc29a4f42178","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42111"},{"id":"6050a6f3d65ddc29a4f42179","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42112"},{"id":"6050a6f3d65ddc29a4f4217c","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42115"},{"id":"6050a6f3d65ddc29a4f4217e","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42117"},{"id":"6050a6f3d65ddc29a4f4217d","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42116"},{"id":"6050a6f3d65ddc29a4f4217a","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42113"},{"id":"6050a6f3d65ddc29a4f4217b","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42114"},{"id":"6050a6f3d65ddc29a4f4217f","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42118"},{"id":"6050a6f3d65ddc29a4f42180","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42119"},{"id":"6050a6f3d65ddc29a4f42182","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211b"},{"id":"6050a6f3d65ddc29a4f42181","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211a"},{"id":"6050a6f3d65ddc29a4f42183","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211c"},{"id":"6050a6f3d65ddc29a4f42184","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211d"},{"id":"6050a6f3d65ddc29a4f42186","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211f"},{"id":"6050a6f3d65ddc29a4f42187","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42120"},{"id":"6050a6f3d65ddc29a4f42185","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4211e"},{"id":"6050a6f3d65ddc29a4f42188","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42121"},{"id":"6050a6f3d65ddc29a4f42189","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42122"},{"id":"6050a6f3d65ddc29a4f4218d","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42126"},{"id":"6050a6f3d65ddc29a4f4218b","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42124"},{"id":"6050a6f3d65ddc29a4f4218c","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42125"},{"id":"6050a6f3d65ddc29a4f4218a","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42123"},{"id":"6050a6f3d65ddc29a4f4218e","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42127"},{"id":"6050a6f3d65ddc29a4f4218f","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42128"},{"id":"6050a6f3d65ddc29a4f42190","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42129"},{"id":"6050a6f3d65ddc29a4f42192","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212b"},{"id":"6050a6f3d65ddc29a4f42193","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212c"},{"id":"6050a6f3d65ddc29a4f42191","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212a"},{"id":"6050a6f3d65ddc29a4f42195","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42135"},{"id":"6050a6f3d65ddc29a4f42196","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42136"},{"id":"6050a6f3d65ddc29a4f42194","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42134"},{"id":"6050a6f3d65ddc29a4f42198","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42138"},{"id":"6050a6f3d65ddc29a4f42197","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42137"},{"id":"6050a6f3d65ddc29a4f42199","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4212f"},{"id":"6050a6f3d65ddc29a4f4219a","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42130"},{"id":"6050a6f3d65ddc29a4f4219b","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42131"},{"id":"6050a6f3d65ddc29a4f4219d","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42133"},{"id":"6050a6f3d65ddc29a4f4219c","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42132"},{"id":"6050a6f3d65ddc29a4f4219e","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42139"},{"id":"6050a6f3d65ddc29a4f4219f","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4213c"},{"id":"6050a6f3d65ddc29a4f421a2","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4213f"},{"id":"6050a6f3d65ddc29a4f421a1","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4213e"},{"id":"6050a6f3d65ddc29a4f421a3","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f42140"},{"id":"6050a6f3d65ddc29a4f421a0","role_id":"6050a6f2d65ddc29a4f420e9","permission_id":"6050a6f2d65ddc29a4f4213d"},{"id":"6050a6f3d65ddc29a4f421a4","role_id":"6050a6f2d65ddc29a4f420ef","permission_id":"6050a6f2d65ddc29a4f420f1"},{"id":"6050a6f3d65ddc29a4f421a5","role_id":"6050a6f2d65ddc29a4f420ef","permission_id":"6050a6f2d65ddc29a4f420f2"},{"id":"6050a6f3d65ddc29a4f421a6","role_id":"6050a6f2d65ddc29a4f420ef","permission_id":"6050a6f2d65ddc29a4f420f3"},{"id":"6050a6f3d65ddc29a4f421a7","role_id":"6050a6f2d65ddc29a4f420ef","permission_id":"6050a6f2d65ddc29a4f4212e"},{"id":"6050a6f3d65ddc29a4f421a8","role_id":"6050a6f2d65ddc29a4f420f0","permission_id":"6050a6f2d65ddc29a4f4212d"},{"id":"6050a6f3d65ddc29a4f421a9","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f4"},{"id":"6050a6f3d65ddc29a4f421aa","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f5"},{"id":"6050a6f3d65ddc29a4f421ab","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f6"},{"id":"6050a6f3d65ddc29a4f421ac","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f7"},{"id":"6050a6f3d65ddc29a4f421ad","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f8"},{"id":"6050a6f3d65ddc29a4f421b0","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420fb"},{"id":"6050a6f3d65ddc29a4f421b2","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4212d"},{"id":"6050a6f3d65ddc29a4f421b1","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420fc"},{"id":"6050a6f3d65ddc29a4f421ae","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420f9"},{"id":"6050a6f3d65ddc29a4f421af","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420fa"},{"id":"6050a6f3d65ddc29a4f421b3","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420fd"},{"id":"6050a6f3d65ddc29a4f421b5","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420ff"},{"id":"6050a6f3d65ddc29a4f421b4","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f420fe"},{"id":"6050a6f3d65ddc29a4f421b6","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42100"},{"id":"6050a6f3d65ddc29a4f421b8","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42102"},{"id":"6050a6f3d65ddc29a4f421b7","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42101"},{"id":"6050a6f3d65ddc29a4f421bb","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42105"},{"id":"6050a6f3d65ddc29a4f421b9","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42103"},{"id":"6050a6f3d65ddc29a4f421ba","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42104"},{"id":"6050a6f3d65ddc29a4f421bc","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42106"},{"id":"6050a6f3d65ddc29a4f421c0","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210a"},{"id":"6050a6f3d65ddc29a4f421c1","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210b"},{"id":"6050a6f3d65ddc29a4f421bd","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42107"},{"id":"6050a6f3d65ddc29a4f421bf","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42109"},{"id":"6050a6f3d65ddc29a4f421be","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42108"},{"id":"6050a6f3d65ddc29a4f421c5","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210f"},{"id":"6050a6f3d65ddc29a4f421c3","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210d"},{"id":"6050a6f3d65ddc29a4f421c6","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42110"},{"id":"6050a6f3d65ddc29a4f421c4","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210e"},{"id":"6050a6f3d65ddc29a4f421c2","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4210c"},{"id":"6050a6f3d65ddc29a4f421c7","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42111"},{"id":"6050a6f3d65ddc29a4f421c8","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42112"},{"id":"6050a6f3d65ddc29a4f421c9","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42113"},{"id":"6050a6f3d65ddc29a4f421cc","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42116"},{"id":"6050a6f3d65ddc29a4f421cd","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42117"},{"id":"6050a6f3d65ddc29a4f421cb","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42115"},{"id":"6050a6f3d65ddc29a4f421ca","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42114"},{"id":"6050a6f3d65ddc29a4f421ce","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42118"},{"id":"6050a6f3d65ddc29a4f421cf","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42119"},{"id":"6050a6f3d65ddc29a4f421d0","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4211a"},{"id":"6050a6f3d65ddc29a4f421d1","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4211b"},{"id":"6050a6f3d65ddc29a4f421d2","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4211c"},{"id":"6050a6f3d65ddc29a4f421d3","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42127"},{"id":"6050a6f3d65ddc29a4f421d6","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4212a"},{"id":"6050a6f3d65ddc29a4f421d5","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42129"},{"id":"6050a6f3d65ddc29a4f421d7","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4212b"},{"id":"6050a6f3d65ddc29a4f421d4","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42128"},{"id":"6050a6f3d65ddc29a4f421d8","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4212c"},{"id":"6050a6f3d65ddc29a4f421db","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42136"},{"id":"6050a6f3d65ddc29a4f421da","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42135"},{"id":"6050a6f3d65ddc29a4f421dc","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42137"},{"id":"6050a6f3d65ddc29a4f421d9","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42134"},{"id":"6050a6f3d65ddc29a4f421dd","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42138"},{"id":"6050a6f3d65ddc29a4f421de","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4212f"},{"id":"6050a6f3d65ddc29a4f421df","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42130"},{"id":"6050a6f3d65ddc29a4f421e0","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42131"},{"id":"6050a6f3d65ddc29a4f421e1","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42132"},{"id":"6050a6f3d65ddc29a4f421e2","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42133"},{"id":"6050a6f3d65ddc29a4f421e3","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4213c"},{"id":"6050a6f3d65ddc29a4f421e4","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4213d"},{"id":"6050a6f3d65ddc29a4f421e5","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4213e"},{"id":"6050a6f3d65ddc29a4f421e6","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f4213f"},{"id":"6050a6f3d65ddc29a4f421e7","role_id":"6050a6f2d65ddc29a4f420ee","permission_id":"6050a6f2d65ddc29a4f42140"},{"id":"6050a6f3d65ddc29a4f421e8","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420f5"},{"id":"6050a6f3d65ddc29a4f421e9","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420f6"},{"id":"6050a6f3d65ddc29a4f421ea","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420f7"},{"id":"6050a6f3d65ddc29a4f421eb","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420f8"},{"id":"6050a6f3d65ddc29a4f421ec","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420f9"},{"id":"6050a6f3d65ddc29a4f421f0","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4212d"},{"id":"6050a6f3d65ddc29a4f421ee","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420fb"},{"id":"6050a6f3d65ddc29a4f421ef","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420fc"},{"id":"6050a6f3d65ddc29a4f421ed","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420fa"},{"id":"6050a6f3d65ddc29a4f421f1","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420fd"},{"id":"6050a6f3d65ddc29a4f421f2","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f420fe"},{"id":"6050a6f3d65ddc29a4f421f3","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42100"},{"id":"6050a6f3d65ddc29a4f421f4","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42101"},{"id":"6050a6f3d65ddc29a4f421f8","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42105"},{"id":"6050a6f3d65ddc29a4f421f5","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42102"},{"id":"6050a6f3d65ddc29a4f421f7","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42104"},{"id":"6050a6f3d65ddc29a4f421f6","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42103"},{"id":"6050a6f3d65ddc29a4f421f9","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4210c"},{"id":"6050a6f3d65ddc29a4f421fa","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4210d"},{"id":"6050a6f3d65ddc29a4f421fb","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4210e"},{"id":"6050a6f3d65ddc29a4f421fc","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4210f"},{"id":"6050a6f3d65ddc29a4f421fd","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42110"},{"id":"6050a6f3d65ddc29a4f421fe","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42111"},{"id":"6050a6f3d65ddc29a4f421ff","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42112"},{"id":"6050a6f3d65ddc29a4f42200","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42113"},{"id":"6050a6f3d65ddc29a4f42204","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42117"},{"id":"6050a6f3d65ddc29a4f42201","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42114"},{"id":"6050a6f3d65ddc29a4f42202","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42115"},{"id":"6050a6f3d65ddc29a4f42203","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42116"},{"id":"6050a6f3d65ddc29a4f42205","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42106"},{"id":"6050a6f3d65ddc29a4f42206","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4212f"},{"id":"6050a6f3d65ddc29a4f42207","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42130"},{"id":"6050a6f3d65ddc29a4f42208","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42131"},{"id":"6050a6f3d65ddc29a4f4220a","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42133"},{"id":"6050a6f3d65ddc29a4f42209","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42132"},{"id":"6050a6f3d65ddc29a4f4220b","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4213c"},{"id":"6050a6f3d65ddc29a4f4220c","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4213d"},{"id":"6050a6f3d65ddc29a4f4220d","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4213e"},{"id":"6050a6f3d65ddc29a4f4220e","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f4213f"},{"id":"6050a6f3d65ddc29a4f4220f","role_id":"6050a6f2d65ddc29a4f420ea","permission_id":"6050a6f2d65ddc29a4f42140"},{"id":"6050a6f3d65ddc29a4f42211","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f420f9"},{"id":"6050a6f3d65ddc29a4f42210","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f420f8"},{"id":"6050a6f3d65ddc29a4f42212","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f420fb"},{"id":"6050a6f3d65ddc29a4f42213","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f420fd"},{"id":"6050a6f3d65ddc29a4f42214","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f420fe"},{"id":"6050a6f3d65ddc29a4f42215","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42100"},{"id":"6050a6f3d65ddc29a4f42216","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42101"},{"id":"6050a6f3d65ddc29a4f42218","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42104"},{"id":"6050a6f3d65ddc29a4f42217","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42102"},{"id":"6050a6f3d65ddc29a4f42219","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f4210c"},{"id":"6050a6f3d65ddc29a4f4221a","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f4210d"},{"id":"6050a6f3d65ddc29a4f4221b","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42112"},{"id":"6050a6f3d65ddc29a4f4221c","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42106"},{"id":"6050a6f3d65ddc29a4f4221d","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f4212f"},{"id":"6050a6f3d65ddc29a4f4221e","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f42132"},{"id":"6050a6f3d65ddc29a4f4221f","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f4213c"},{"id":"6050a6f3d65ddc29a4f42220","role_id":"6050a6f2d65ddc29a4f420eb","permission_id":"6050a6f2d65ddc29a4f4213d"},{"id":"6050a6f3d65ddc29a4f42221","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f420f8"},{"id":"6050a6f3d65ddc29a4f42223","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f420fb"},{"id":"6050a6f3d65ddc29a4f42222","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f420f9"},{"id":"6050a6f3d65ddc29a4f42224","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f420fd"},{"id":"6050a6f3d65ddc29a4f42225","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f420fe"},{"id":"6050a6f3d65ddc29a4f42226","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42100"},{"id":"6050a6f3d65ddc29a4f42227","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42101"},{"id":"6050a6f3d65ddc29a4f42228","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42102"},{"id":"6050a6f3d65ddc29a4f42229","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f4210c"},{"id":"6050a6f3d65ddc29a4f4222a","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f4210d"},{"id":"6050a6f3d65ddc29a4f4222b","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42112"},{"id":"6050a6f3d65ddc29a4f4222c","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42106"},{"id":"6050a6f3d65ddc29a4f4222d","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f4212f"},{"id":"6050a6f3d65ddc29a4f4222e","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f42132"},{"id":"6050a6f3d65ddc29a4f4222f","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f4213c"},{"id":"6050a6f3d65ddc29a4f42230","role_id":"6050a6f2d65ddc29a4f420ec","permission_id":"6050a6f2d65ddc29a4f4213d"}],"settings":[{"id":"6050a6f3d65ddc29a4f42239","group":"core","key":"db_hash","value":"6399887c-e6aa-43cf-ba29-dbb3e6abe086","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f3d65ddc29a4f4223a","group":"core","key":"routes_hash","value":"3d180d52c663d173a6be791ef411ed01","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:18"},{"id":"6050a6f3d65ddc29a4f4223b","group":"core","key":"next_update_check","value":"1616156045","type":"number","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-18 12:14:05"},{"id":"6050a6f3d65ddc29a4f4223c","group":"core","key":"notifications","value":"[]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f3d65ddc29a4f4223d","group":"core","key":"session_secret","value":"9314ee6626036cd69b476015653cb9929266f7416cdc47302daa35cfc07dc44d","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f3d65ddc29a4f4223e","group":"core","key":"theme_session_secret","value":"15ac28893796842d3ab9d59c3d256695fe45c0185bf92fb2d0a07833913c77d8","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4223f","group":"core","key":"ghost_public_key","value":"-----BEGIN RSA PUBLIC KEY-----\nMIGJAoGBAIi8xtYT1osLeouT4Mraiz0foWnvxvKzi0y6GM2eUfVkoOiXM5/IReWVOG0EP85J\nGB8HDLD0FQz0vf5NAVC8GjsKGRXNw2OXRNiViRPBt9iAr0nbnkpG5TP6OxREQ/4PF7Sf8svV\nBMPaOJoppV/8lH9Wwnh844eIsO7aCxy2WRhRAgMBAAE=\n-----END RSA PUBLIC KEY-----\n","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42240","group":"core","key":"ghost_private_key","value":"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCIvMbWE9aLC3qLk+DK2os9H6Fp78bys4tMuhjNnlH1ZKDolzOfyEXllTht\nBD/OSRgfBwyw9BUM9L3+TQFQvBo7ChkVzcNjl0TYlYkTwbfYgK9J255KRuUz+jsUREP+Dxe0\nn/LL1QTD2jiaKaVf/JR/VsJ4fOOHiLDu2gsctlkYUQIDAQABAoGAeKldLPxEjl6KvTC5ZUiF\nJmMLJViZzwHxIrv1tzzGRi2OcLE8tPsd8wJC0LC3PWnzBy5JXL2G9e/i2M1LI9tZqQIsdfYP\nvKSEEn8RPKaYg8Xce5Zs6r+uVgVwSD7j8SrWOpldYYWUseQFEH5YMwN0KDKWG2KA95qoW/Bs\nCo0e+gECQQDXrQ6br2PP1N0LqIK2Cz++3fFtHo0AxnC5L8k14ZwfwPcLqoXVfwjQ72YYCqXi\nd4Yvy3RVf/WaToZ0d8ybFtlJAkEAok13VlDTma5HPM1bN/0CS3d2BiKHAD7kdGZ94Jy+J9M6\ncm16ySLTHSg/2J836G65u7ToxuemobcxSnMAz9KOyQJALwYTZkxiVcEShOUzwp9HQcVAS0ta\n8O1TTH0nwLC1CpNXCdsfHQJ6mJtpxhokOvFWd3tDnRSuJvuyAxjPqozbyQJAIwrix0owRbAx\nRVl5Zn9ELZMfcnel+lGZ9d/jMcnl7KdYqTgmGKNiPZthHZ5S7eZqR7Lpx3hgq+3nwJFQDY8C\nsQJBAIXTQGWOXNNSlQQjkFIL2Vq4m0k9tPQJA2JtSpwRniPSdSmD+0/0lp4jAoqqDAH9HzH6\nB04yEz9qhHO7neXdQ9A=\n-----END RSA PRIVATE KEY-----\n","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42241","group":"core","key":"members_public_key","value":"-----BEGIN RSA PUBLIC KEY-----\nMIGJAoGBAM7aqDSSjUlPMG3Ml4XGSJ7TibH3jKo2N2MoASaoAW+4LfU1glQ4HXmgtzJ2oFNB\nq6FHGc9RXCg7dXtAiibEH+gyFhBSzTNszNB8bIEp6Ai+ICOj/XZ8Ls0C8MB9Pv6XaPIBzPvE\n2+vUkwuEOK3xAsGTwHMno5sPvKX8OKeu7jvLAgMBAAE=\n-----END RSA PUBLIC KEY-----\n","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42242","group":"core","key":"members_private_key","value":"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO2qg0ko1JTzBtzJeFxkie04mx94yqNjdjKAEmqAFvuC31NYJUOB15oLcy\ndqBTQauhRxnPUVwoO3V7QIomxB/oMhYQUs0zbMzQfGyBKegIviAjo/12fC7NAvDAfT7+l2jy\nAcz7xNvr1JMLhDit8QLBk8BzJ6ObD7yl/Dinru47ywIDAQABAoGBAKWRDqFFzCCpabH42C8T\nDn1SBByWb9itnJeZJZKzVrL9UIu8UJzobW803G1f1ePN5HoqVtZB4Omy7c3BUtLEmGPpjAJ/\nPCEC73Hn3SoWLho6uIfsLhn+bGM79Wz2X843idoY/4PPWITETCRTY39Jq5zjzD3f8i76Hf1r\nDVWFEdkBAkEA6J3EEKkJJ520dhMUyNXK77ddZrvLECwXGae0V8/ydwPfyieV+HkJAQwmrVAp\nh1fdWyqq+DjwEZKILQcPBFiAGwJBAOOl6yT7wVRKiFTUKaPBJhCIirdF7yNcYe4BmHwLlZj0\n+Q9suVC35mUIbtsqLFjnffjm01SzpKWhqoM0P5lozhECQBrP5IOPGFEKqnxZorGrguKynf9z\nceqBSoBYhj8A5w+00Jy6h1zGhrUqM2MStFa3V/pkJqTJ21ILM8sM3zw+/zUCQDoUCnnVAO3Q\nVhfOSRFOJbfyHfHEFc6fsxxVq+F50yDC3wfgZScCw/TiweWITOghpzHpMeFaM5dON4JhwhgR\ndQECQBVxToOy/lhFb/u9qRW6031Tcl1DHhZFk77Wya8ivH/e2a/jkBwGqZnsID+DA4pguOog\ndTIYYXZRKKcjVxcrjLc=\n-----END RSA PRIVATE KEY-----\n","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42243","group":"core","key":"members_email_auth_secret","value":"a8230ce7ed0091f0bcf56828479e16d12447dfa3eea1dcc3c3eb55e790f296a41efcdeda68f10e32727b0b7d90f5368952ace7152ea25995cb425e71c642e8cf","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42246","group":"site","key":"title","value":"test","type":"string","flags":"PUBLIC","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-18 12:14:19"},{"id":"6050a6f4d65ddc29a4f42247","group":"site","key":"description","value":"Thoughts, stories and ideas.","type":"string","flags":"PUBLIC","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-18 12:14:19"},{"id":"6050a6f4d65ddc29a4f42248","group":"site","key":"logo","value":"https://static.ghost.org/v1.0.0/images/ghost-logo.svg","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42249","group":"site","key":"cover_image","value":"https://static.ghost.org/v3.0.0/images/publication-cover.png","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224a","group":"site","key":"icon","value":"","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224b","group":"site","key":"accent_color","value":"#15171A","type":"string","flags":"PUBLIC","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224c","group":"site","key":"lang","value":"en","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224d","group":"site","key":"timezone","value":"Etc/UTC","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224e","group":"site","key":"codeinjection_head","value":"","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4224f","group":"site","key":"codeinjection_foot","value":"","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42250","group":"site","key":"facebook","value":"ghost","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42251","group":"site","key":"twitter","value":"ghost","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42252","group":"site","key":"navigation","value":"[{\"label\":\"Home\", \"url\":\"/\"},{\"label\":\"Tag\", \"url\":\"/tag/getting-started/\"}, {\"label\":\"Author\", \"url\":\"/author/ghost/\"},{\"label\":\"Help\", \"url\":\"https://ghost.org/docs/\"}]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42253","group":"site","key":"secondary_navigation","value":"[]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42254","group":"site","key":"meta_title","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42255","group":"site","key":"meta_description","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42256","group":"site","key":"og_image","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42257","group":"site","key":"og_title","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42258","group":"site","key":"og_description","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42259","group":"site","key":"twitter_image","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225a","group":"site","key":"twitter_title","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225b","group":"site","key":"twitter_description","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225c","group":"theme","key":"active_theme","value":"casper","type":"string","flags":"RO","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225d","group":"private","key":"is_private","value":"false","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225e","group":"private","key":"password","value":"","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4225f","group":"private","key":"public_hash","value":"cbefed56cfffb26d5721984cf3cdf4","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42260","group":"members","key":"default_content_visibility","value":"public","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42261","group":"members","key":"members_allow_free_signup","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42262","group":"members","key":"members_from_address","value":"noreply","type":"string","flags":"RO","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42263","group":"members","key":"members_support_address","value":"noreply","type":"string","flags":"PUBLIC,RO","created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42264","group":"members","key":"members_reply_address","value":"newsletter","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42265","group":"members","key":"members_free_signup_redirect","value":"/","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42266","group":"members","key":"members_paid_signup_redirect","value":"/","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42267","group":"members","key":"stripe_product_name","value":"Ghost Subscription","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4226a","group":"members","key":"stripe_plans","value":"[{\"name\":\"Monthly\",\"currency\":\"usd\",\"interval\":\"month\",\"amount\":500},{\"name\":\"Yearly\",\"currency\":\"usd\",\"interval\":\"year\",\"amount\":5000}]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4226d","group":"members","key":"stripe_connect_livemode","value":null,"type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4226e","group":"members","key":"stripe_connect_display_name","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42270","group":"portal","key":"portal_name","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42271","group":"portal","key":"portal_button","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42272","group":"portal","key":"portal_plans","value":"[\"free\", \"monthly\", \"yearly\"]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42273","group":"portal","key":"portal_button_style","value":"icon-and-text","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42274","group":"portal","key":"portal_button_icon","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42275","group":"portal","key":"portal_button_signup_text","value":"Subscribe","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42276","group":"email","key":"mailgun_domain","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42277","group":"email","key":"mailgun_api_key","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42278","group":"email","key":"mailgun_base_url","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42279","group":"email","key":"email_track_opens","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4227a","group":"amp","key":"amp","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4227b","group":"amp","key":"amp_gtag_id","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4227c","group":"firstpromoter","key":"firstpromoter","value":"false","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f4227d","group":"firstpromoter","key":"firstpromoter_id","value":null,"type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42280","group":"unsplash","key":"unsplash","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42281","group":"views","key":"shared_views","value":"[]","type":"array","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42282","group":"newsletter","key":"newsletter_show_badge","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42283","group":"newsletter","key":"newsletter_show_header","value":"true","type":"boolean","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42284","group":"newsletter","key":"newsletter_body_font_category","value":"sans_serif","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"6050a6f4d65ddc29a4f42285","group":"newsletter","key":"newsletter_footer_content","value":"","type":"string","flags":null,"created_at":"2021-03-16 12:39:16","updated_at":"2021-03-16 12:39:16"},{"id":"605344068dc68157f9d7b1e1","group":"slack","key":"slack_url","value":"","type":"string","flags":null,"created_at":"2021-03-18 12:13:58","updated_at":"2021-03-18 12:13:58"},{"id":"605344068dc68157f9d7b1e2","group":"slack","key":"slack_username","value":"Ghost","type":"string","flags":null,"created_at":"2021-03-18 12:13:58","updated_at":"2021-03-18 12:13:58"}],"tags":[{"id":"6050a6f2d65ddc29a4f420e8","name":"Getting Started","slug":"getting-started","description":null,"feature_image":null,"parent_id":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"created_at":"2021-03-16 12:39:14","updated_at":"2021-03-16 12:39:14"}],"posts_tags":[{"id":"6050a6f3d65ddc29a4f42231","post_id":"6050a6f2d65ddc29a4f42142","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42232","post_id":"6050a6f2d65ddc29a4f42144","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42233","post_id":"6050a6f2d65ddc29a4f42146","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42234","post_id":"6050a6f2d65ddc29a4f42148","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42235","post_id":"6050a6f2d65ddc29a4f4214a","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42236","post_id":"6050a6f3d65ddc29a4f4214c","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0},{"id":"6050a6f3d65ddc29a4f42237","post_id":"6050a6f3d65ddc29a4f4214e","tag_id":"6050a6f2d65ddc29a4f420e8","sort_order":0}],"invites":[],"integrations":[{"id":"6050a6f3d65ddc29a4f42150","type":"builtin","name":"Zapier","slug":"zapier","icon_image":null,"description":"Built-in Zapier integration","created_at":"2021-03-16 12:39:15","updated_at":"2021-03-16 12:39:15"},{"id":"6050a6f3d65ddc29a4f42152","type":"internal","name":"Ghost Backup","slug":"ghost-backup","icon_image":null,"description":"Internal DB Backup integration","created_at":"2021-03-16 12:39:15","updated_at":"2021-03-16 12:39:15"},{"id":"6050a6f3d65ddc29a4f42154","type":"internal","name":"Ghost Scheduler","slug":"ghost-scheduler","icon_image":null,"description":"Internal Scheduler integration","created_at":"2021-03-16 12:39:15","updated_at":"2021-03-16 12:39:15"}],"api_keys":[{"id":"6050a6f3d65ddc29a4f42151","type":"admin","secret":"cf932f28f187a7dbef62437b7f1daa247e5680c9ec5bc962cc92b7ee1c36fda3","role_id":"6050a6f2d65ddc29a4f420ee","integration_id":"6050a6f3d65ddc29a4f42150","user_id":null,"last_seen_at":null,"last_seen_version":null,"created_at":1615898355080,"updated_at":1615898355080},{"id":"6050a6f3d65ddc29a4f42153","type":"admin","secret":"78c2af0c031010cea95b7a979bc19c4afc0d703038a510b5636d057e54fa955a","role_id":"6050a6f2d65ddc29a4f420ef","integration_id":"6050a6f3d65ddc29a4f42152","user_id":null,"last_seen_at":null,"last_seen_version":null,"created_at":1615898355088,"updated_at":1615898355088},{"id":"6050a6f3d65ddc29a4f42155","type":"admin","secret":"4757644c8636b010c8d0e5666943533a101bb7360030aaa2f3fba4566f47df7e","role_id":"6050a6f2d65ddc29a4f420f0","integration_id":"6050a6f3d65ddc29a4f42154","user_id":null,"last_seen_at":null,"last_seen_version":null,"created_at":1615898355096,"updated_at":1615898355096}],"members":[],"labels":[],"actions":[],"emails":[],"tokens":[],"snippets":[],"migrations_lock":[{"lock_key":"km01","locked":0,"acquired_at":"2021-03-18 12:13:57","released_at":"2021-03-18 12:13:58"}],"members_labels":[],"members_stripe_customers":[],"brute":[{"key":"oHUubZQTM66eOWJCFaoi+8dO/eXPG5zwBOW8P5YAuKM=","firstRequest":1616069659332,"lastRequest":1616069659332,"lifetime":1616073259334,"count":1}],"webhooks":[],"members_stripe_customers_subscriptions":[]}}]} \ No newline at end of file