2.5 KiB
2.5 KiB
MakingHistory - Emissary
We are customising an instance of Emissary to run MakingHistory.
TODO
- Currently using a FILESYSTEM entry for emissary to access our MakingHistory
templates.
- Switch to using a hosted
gitrepo instead
- Switch to using a hosted
Brief Architecture Overview
From the bottom up:
- Database
- Model Objects
- define info saved in database
- Services
- R/W objects to db
- Handle queries
- Handle inter-object actions
- Builders
- Assemble different bits of functionality from services e.g. access data from inbox what's your username is the user I'm looking at actually me how many rules have I defined how many people are following me queries to get followers, following, folders we put people into, etc i.e. info we want to collect comes from varying services; builders assemble into pretty and limited API
- Defines the public API
Template Overview
- templateRole This role makes the template eligible to be displayed as a UI choice for user inbox
- model The model sets which go builder to use with this template
- extends Extends inherits from other templates
- containedBy Limit this template such the it can only be used from within certain others NOTE: I believe templateId's would be the content of the array TODO: Confirm the above note
- schema A schema sets up the data structure that will be used inside a template Defines the 'data' section of relevant table entry in mongodb Based on json, without linking between schemas; all rules must be defined herein
- states Each piece of content can pass through a state machine; e.g. unpublished, published, for-review, etc
- roles Works alongside states [Currently being reworked in the codebase] Assignable to various 'groups' [later, 'circles' as well]
- bundles Define static assets; e.g. stylesheets, js, compressed or not If not defined in a bundle, we may just define a 'resources' folder, whereby all content within will be fetchable by the client
- actions
Every action has a name, which corresponds to a set of workflow 'steps' we
want to be taken when that action is called by users with a certain 'role'
- roles
- stateRoles define which 'roles' can access the data when in a given 'state'
- steps
- do
- "view-html"
- by default will use the action name as the filename
- "view-html"
- file
- define filename to be used for the step
- do