Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ghost 0.7 Overview #5503

Closed
13 of 31 tasks
ErisDS opened this issue Jun 30, 2015 · 3 comments
Closed
13 of 31 tasks

Ghost 0.7 Overview #5503

ErisDS opened this issue Jun 30, 2015 · 3 comments
Assignees
Labels
affects:api Affects the Ghost API
Milestone

Comments

@ErisDS
Copy link
Member

ErisDS commented Jun 30, 2015

This is a place for me to bring together an overview of all of the work that's currently ongoing towards the next release of Ghost, which will be 0.7.

With Zelda, we're undertaking enormous changes to the design of Ghost's UI. At the same time we're hoping to land a number of new features and improvements which build on the freedom Zelda gives us and also leverage the major version bump as a hint things might be rocky during the upgrade this time!

There are 3 aspects to the changes that are going into 0.7, each covered in more detail below.

  • Zelda
  • Public API
  • Data Migration

Zelda

Zelda is the UI redesign projects, which also includes a few major functional additions and changes:

  • autocomplete search box
  • new onboarding flow
  • overhaul of notifications, alerts, and inline validation
  • rebuilding the tag component

All of this work is tracked separately in #5314

Public API

We've been talking for a very long time about making our JSON API publicly accessible via OAuth (See the OAuth Epic).

The plan is to make this a reality in 0.7, but in a limited way: The read-only public endpoints will be made available to themes via the {{#get}} helper and also to public clients, but without a UI for registering new clients.

This means that it will be possible to fetch what we consider 'public' data - published posts, tags, and active users. This will be considered a 'public beta' of the API.

The {{#get}} helper allows for accessing that data inside a theme, so that it is possible to fetch a tag list, or recent posts, etc. (Issue #4439)

JavaScript clients which run in the browser will also be able to access the data, providing they have a client id (See #4180). It will be possible to insert new client ids directly into the DB (a UI will come later). We will also make a default id available so that themes can easily make use of ajax to access the API (see #4184).

As well as making the data accessible, we need to push to clean up the API and ensure that the available endpoints are truly useful. The following are a set of must-have and nice-to-have API changes:

Handling permissions / auth:

Last but not least, the get helper is currently a single item:

  • Initial get helper (Query (get) helper #4439)
  • Update get helper to work with Filter param (Issue TBD)
  • Improve the has helper (issue TBD)

Extras:

  • Improve error messages
  • Figure out what to do with versioning

Data Migration

Ghost's internal migration system centres around changes to the database schema. For 0.7 there are a number of candidates for things which may change the schema. Once a schema change is initiated we can also hook in other migrations that don't affect the database schema directly, but require a database version change to be triggered.

Possible schema changes:

Other migrations that need to be added in:

Extras

@ErisDS ErisDS added epic affects:api Affects the Ghost API labels Jun 30, 2015
@ErisDS ErisDS added this to the Zelda milestone Jun 30, 2015
@sgoodwin
Copy link
Contributor

Public API bits are a start. Yay API finally!

cobbspur added a commit to cobbspur/Ghost that referenced this issue Jul 20, 2015
refs TryGhost#5503

- updates package.json to using 2.0.2 version of top-gh-conribs
- updates gruntfile, using moment to calculate time period to observe
- new version of top-gh-contribs is not related to top 100 contributors therefore returns more users
- observed timepsan is reverted to 90 days now that top-gh-contribs fetches enough contributors
ErisDS referenced this issue in sebgie/Ghost Aug 23, 2015
…hen migrating

closes TryGhost#5298
- remove all harcoded instances of jQuery throughout the front-end of the blog
- add migration function to add cdn link to ghost_foot code injection when migrating up from version 003
- migration version bump
@ErisDS
Copy link
Member Author

ErisDS commented Aug 26, 2015

Once #5706 is merged, this work will be as complete as it is going to get for the first 0.7 release. Autocomplete, public API & get helper work will follow in a subsequent release - so punting this to the Post-Zelda milestone.

@ErisDS ErisDS modified the milestones: Next Backlog, Zelda, Post-Zelda Aug 26, 2015
sebgie pushed a commit to sebgie/Ghost that referenced this issue Aug 31, 2015
refs TryGhost#5614 and TryGhost#5503

- update private blog type, including update to settings.edit
- switch order of populate settings & update fixtures + populate all settings

Private blog settings should not be returned by public endpoints
therefore they need a type which is not `blog` or `theme`.
`core` doesn't suit either, as those settings don't usually have UI
To resolve this, I created a new type `private` which can be used
for any setting which has a UI but should not be public data
ErisDS added a commit to ErisDS/Ghost that referenced this issue Sep 1, 2015
refs TryGhost#5614 and TryGhost#5503

- update private blog type, including update to settings.edit
- switch order of populate settings & update fixtures + populate all settings

Private blog settings should not be returned by public endpoints
therefore they need a type which is not `blog` or `theme`.
`core` doesn't suit either, as those settings don't usually have UI
To resolve this, I created a new type `private` which can be used
for any setting which has a UI but should not be public data
ErisDS added a commit to ErisDS/Ghost that referenced this issue Sep 2, 2015
refs TryGhost#5614 and TryGhost#5503

- update private blog type, including update to settings.edit
- switch order of populate settings & update fixtures + populate all settings

Private blog settings should not be returned by public endpoints
therefore they need a type which is not `blog` or `theme`.
`core` doesn't suit either, as those settings don't usually have UI
To resolve this, I created a new type `private` which can be used
for any setting which has a UI but should not be public data
@ErisDS ErisDS removed this from the Post-Zelda milestone Oct 9, 2015
@ErisDS ErisDS modified the milestones: Post-Zelda, Public API v1 Oct 9, 2015
@ErisDS ErisDS self-assigned this Oct 13, 2015
@ErisDS
Copy link
Member Author

ErisDS commented Oct 20, 2015

Closing in favour of #5976 which is tracking on going work

@ErisDS ErisDS closed this as completed Oct 20, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects:api Affects the Ghost API
Projects
None yet
Development

No branches or pull requests

2 participants