Files
talk/DESIGN.md
T
Wyatt Johnson 59cf728681 [next] Tasks (#1777)
* feat: initial support for synced tenants

* fix: cleanup

* fix: logger now respects logging level

* fix: cache now ignores updates issued from itself

* feat: print subscriber count

* feat: initial moderation + validation for new comments

* fix: added Promiseable type

* feat: initial actions impl

* feat: more moderation phases

* fix: handle settings inheritence

* fix: moved settings into new file

* fix: defaults and documentation

* fix: replace merge with object spread

* feat: added integration with akismet

* fix: support tenant cache for oidc strategy

* fix: fixed compile

* fix: import ordering

* feat: added bull for queue support

* feat: support for scraping

* fix: fixes for scraper

- Implemented simple metascraper replacement (to resolve security advisory
  warning)
- Implemented simle dotize replacement (to resolve not
  working version that couldn't handle date objects)
- Plugged in asset scraping to asset creation process

* fix: handles array values

* feat: added initial scraper implementation

* feat: seperate queues but share config

* fix: simplified auth data access

* feat: moved more settings into the graph

* feat: improved mailer design

* fix: fixed issue with dotize

* fix: fixed some issues with adapter

* fix: queue cleanup

* feat: added organizationName to Tenant

* feat: email rendering

* review: support es6 imports

* fix: restore old ci step

* fix: adjusted logging messages
2018-09-04 18:47:20 +00:00

1.4 KiB

Design

HTTP Routes

Stream API

/api/tenant/graphql /api/tenant/auth

Tenant Management API

/api/management/graphql /api/management/auth

Folder structure

/graph/tenant <-- tenant's api (comments, assets, ...)
/graph/management <-- tenant management api
  1. No tenants
  2. Create a tenant <-- consuming the TMA

Database connections

Redis Clients

  1. Tenant RedisPubSub Subscriber *
  2. Tenant RedisPubSub Publisher
  3. Queue Subscriber *
  4. Queue Publisher
  5. Queue Client
  6. Queue Blocking Client

Scripts

Embed

Embed Script - Renders the iFrame <-- does not have a html page in production (should be on server?)

/dist/static/assets/embed.js /static/embed.js

Stream

Stream - Renders the comment stream <-- data

/dist/static/assets/stream..css /static/assets/stream..css /dist/static/assets/stream..js /static/assets/stream..js /dist/static/stream.html /embed/stream

Admin

Admin - Renders the Admin page <-- data

/dist/static/assets/admin..css /static/assets/admin..css /dist/static/assets/admin..js /static/assets/admin..js /dist/static/admin.html /admin

Development Routes

localhost:3000 / -> /admin /dev <-- server side html for dev/iframe integration

localhost:8080 / -> localhost:3000/dev /embed/stream <-- stream html (now is at /) /admin <-- stream html (now is not there)