- saves + retrieves data from db
- components
- @published
- model.js
- alternate render
ext
.model.js - upgrade.js
- extensions
- pages
- @published
- publishing service(s)
- extensions
- uris
- lists
- users
- scheduled items
- components (layout)
- pages
- components
- bootstraps data on server start
- components
- sites
- root
- creates express routes
- api routes
- plugin routes
- sites/index.js mounting (sites inside other sites)
- authenticates api calls
- user accounts + oauth
- session management
- handles filesystem access
- components / npm components
- sites
- assets & media
- handles asset / media static serving
- composes components
- inside other components
- inside pages
- exposes plugin api
- instantiation hook
- adding routes
- saving data hook
- deleting data hook
- publishing data hook
- unpublishing data hook
- exposes webhook api
- exposes renderer api
- component data + upgrading + bootstrapping
- page data / uris / publishing
- site config / route mounting
- composing components + pages
- env variables (client-side model.js dependency)
- user data
- new page templates (somehow)
- hooks
- updates - plugin hooks (search, analysis, logging, etc)
- retrievals - renderers (data+locals in, strings out)
- nginx
- auth (oauth + session management)
- routing + route protection
- database stuff (discuss after more research)
- scheduler
- search
- pages, users, sites (built-in)
- custom indices
- html
- rendering html
- handling asset injection (inline/linked scripts/styles)
- injecting kiln-specific locals
- plugin api for decorating response html
- filesystem
- fiiiiiles
- npm components
- yaml stuff
- scheduler (api)
- memoization / memory monitoring
- generic webhook plugin
- slack / newsiebot
- legacy systems
- list management → search plugin / core data structures
- scheduling in js
- auth + session + routes in js
- db stuff tbd db d
- asset compilation in core → html / renderers
auth
,router
, andcomposer
(andlist management
) might be core amphora things, butbootstrap
,filesystem
, andscheduler
should definitely be plugins