clone-db
: make a copy of the database from the server (connection details configured in.env
)- Note that this only works on localhost
migrations
: apply a migration
Quickref: RLS on Logins
, Users
, Softwares
, TestingEnvironments
, AnswerSets
, Answers
- rls: public can see if its
AnswerSet.is_public = true
. else restrict to owner. flag
: theTest
for thisAnswer
has been flagged since this wasmodified
- rls: public can see if
is_public = true
. else restrict to owner. summary
: long summary to be published on site
- metadata about the database
- keywords:
version
(corresponds to the number of the most recent group of migrations that were run)
- rls: Users can see their own invitation(s). Public can't see anything.
- Users get invitations to use the website
- Test books and also the UI (set via cookie maybe?) have language codes
- rls: users can change their own password
- in separate table for better postgraphile compatibility
- Users submit requests to publish their result sets
- rls: public can see only s/w with public results. users can see only that + s/w that they're testing.
- Software includes hardware devices too
topic_id + lang_id + version
should be unique
- rls: public can only see testing environments with answer sets that are public.
assistive_technology_id + reading_system_id + os_id + browser_id + device_id
should be unique
flag
: new or changed compared with previous version of same (lang_id + topic
) test booktest_book_id + test_id
should be uniquetest_id
: the test ID string (e.g.basic-010
)
- short string topic identifiers used by the test books
- necessary to know that two different books are for the same topic (e.g. french and english versions)
- rls: users can edit their own details
- Limited to publicly-visible user info (e.g. if the user row is visible, all cols are available to view)
Return the current user's ID (internally via jwt.claims.user_id
);
"Volatile" because then it can be a mutation in graphql. Logging in via mutation is better in particular with Apollo, which we used to use and may again use someday, because of issues (perhaps by design) with useLazyQuery.
"Volatile" as above.
Give someone enough access to reset their password. This returns a token with user-level credentials, lasting 1 hr.