-
-
Notifications
You must be signed in to change notification settings - Fork 10.6k
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 Apps & the Ghost Developer Kit #1474
Comments
Ghost Apps = plugins? |
@JuanKRuiz yep 👍 |
A question that arises after looking at the kudos plugin: The Kudos plugin directly uses Knex to create a new table. Eventually it should be possible to drop that same table again. Ghost core tables would need protection from being dropped by a plugin. |
Yeah, that new table will be replaced by the custom data table we have |
Temporarily closing all of the |
Please Note: Apps is the new name for plugins.
The work towards making Ghost apps possible is spread across several issues in several different repositories.
We now have the Ghost-App repository where the app boilerplate is beginning to take shape.
The boilerplate / base structure
First we want to get to the point where we can create an app with the simplest access to Ghost.
Goal: Create an example app that can register a handlebars helper and filter jQuery out from
ghost_foot
.App Boilerplate: Do we need .App? and other extendable base apps? Ghost-App#7Ghost Filters are broken Ghost Filters are broken #2157App Boilerplate: filters ? Ghost-App#6Ghost Developer Tools 'proxy' object for apps Ghost Developer Tools 'proxy' object for apps #1478Publish next version of boilerplate to NPMNow @ 0.0.2App Boilerplate: proxy object naming and structure App Boilerplate: proxy object naming and structure Ghost-App#10App Installation
We want to make it possible to easily install and manage an app
Goal: Users can easily activate and manage apps without touching the database even if the app disappears or is broken.
Install App Dependencies Install App Dependencies #2099Add package.json support for Themes Add package.json support for Themes #2081Apps initial lifecycle and setting screen UI Apps initial lifecycle and setting screen UI #2083App Safety and Security
Users should be able to depend on an app to do what it says. Apps should be able to do things they ask for permission for. We should make it clear what it is and is not acceptable for an app to do.
Goal: To be able to define an app with a set of permissions. The app should get those permissions and be held to them. E.g. permission and ability to edit a post but not delete one.
[TBD: improve goal to be more easily measurable]
[TBD: provide examples for ACL]
Load Apps Sandboxed Load Apps Sandboxed #2091App Permissions App Permissions #2095ACL & the API: Current user everywhere ACL & the API: Current user everywhere #2058Data API v1
Our JSON api, which will be exposed internally to apps as the 'Data API' needs work to improve
Goal: A consistent v1.0 JSON API which is documented!
Improvement: Refactor Models Improvement: Refactor Models #1655Improvement: Remove res.redirect() from API calls Improvement: Remove res.redirect() from API calls #1654Add validation to models using schema attributes Add validation to models using schema attributes #1401Database / Schema Additions for apps Database / Schema Additions for apps #2102Model extension for apps Model extension for apps #2138Application Settings
Goal: To be able to create an application with a single setting and appropriate UI.
Other APIs
In order to build a realistic app, we're going to need access to more than just a data API
Goal: To be able to rebuild the Kudos example plugin by @jgable using the tools provided by the GDK.
If you're interested in our intentions for Ghost Apps, I recommend reading the (very much WIP) Imagining the Ghost Developer Kit
The text was updated successfully, but these errors were encountered: