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(cache): When deleting item, don't error out on cache miss of the
Fix(ReferenceList): Don't blow away ref list inputs on update. Also, can
now update ref list to have a length of zero values.
Feat(cms.go): Retrying if requests last too long. Effective max request
time of 30 seconds (ten seconds max retried three times).
Feat(context): Completed adding context to data layer. Refactored tests
to use context.
Fix(s/stripe): Resolved stripe transaction error: misconfiguration in
environment variable (did not include session_id query parameter in
Test(s/stripe): Attempting to understand Stripe error message received
on cms-tip.evanjon.es. Invalid transaction ID?
Feat(context): Thread context throughout data layer. TODO: Update
Feat(db): Tweaking db.SetMaxOpenConns, db.SetMaxIdleConns, and
Fix(db): Remove unnecessary db#Set calls.
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.
Fix(hook service): Hook service was broke for list of hooks. Encapsulate
in anonymous func to fix.
TMP(c/user/user.go): Adding temp Chief signups. TODO: Remove.
Fix(testing): Refactor'd tests per RBAC feat breakage. All tests
Chore(Error2 -> Error): Swapped Error impl. for Error2 in all
Feat(invites and roles): Users can now set roles while inviting others.
WIP(rbac): Decorator object complete. TODO: Specify role in invite.
Allow admin to change other user's roles.
WIP(rbac): Large DB interface refactor. Prep for rbac work. TODO: All
tests have broke. Fix them.