Feat(dynamic): Dynamic content pages have been added (rather than
hardcoded HTML. This is Skipper dog fooding itself (I.E. Skipper
now makes requests to itself to pull content for these dynamic pages).
This commit also adds initial support for an "official" Skipper Go API.
This is nice as the API satisfies interfaces Skipper itself uses
internally (E.G. m/content, m/value).
Fix(ReferenceList): Don't blow away ref list inputs on update. Also, can
now update ref list to have a length of zero values.
Chore(user/TODO): Remove @chief signups. Add more to TODO.
Feat(db): Removed non transactions and deadlocks from db layer.
Feat(db): Mostly complete removing potentially deadlocking DB code. Only
db.Exec calls left to remove.
Chore(Error2 -> Error): Swapped Error impl. for Error2 in all
WIP(rbac): Decorator object complete. TODO: Specify role in invite.
Allow admin to change other user's roles.
Feat(invite): Adding invite feature.
Feat(password): Password update on billing page.
WIP(Stripe downgrade): Work in progress commit. See TODO file. Need to
warn user on dangerous actions such as downgrade.
Feat(email+upgrade): MVP support for user emails (after signup) and
WIP(rate limiting): Initial support for rate limiting. TODO: rate limit
for user to org.
Feat(stripe/billing): cms_billing table complete. NEXT: Allow users to
Feat(Big): Added a few things here...
* MVP stripe integration (new controller/server).
* Moved tmpl to views (package v).
* Added ability to create migrations.
* Added first migration. Remove user_to_space in favor of org table.
Feat(footer+logo): Updating HTML.
Feat(LICENSE): AGPL -> EUPL. Changing to modified EUPL.
Feat(c/*+landing): Landing page additions for payment options in the
future + refactoring all controllers to DI base controller.
Chore(TODO): Update TODO list for current roadmap goals.