* feat: initial setup of permissions on keys
* fix: remove API keys
* test: update me resolver, findByIdWithSecret, findByKey and saveApiKey tests
* test: update and fix the rest of the failing api key tests
* fix: add reflect-metadata to test setup in vite config
* fix: revert myservers.cfg to original
* fix: update User type on me resolver
* fix: make permissions nullable and rerun codegen
* fix: update import syntax in me resolver
* refactor: move create-local-connect-api-key to api key service and handle in onModuleInit
* test: add tests for createLocalApiKeyForConnectIfNecessary
* refactor: add validation to me resolver
* refactor: address code rabbit suggestions
* refactor: update me resolver tests and fix hasOwnProperty error
* refactor: remove console log
* test: add additional coverage for me resolver tests
* test: fix failing test
* refactor: address review comments, add new api-key service test, and remove deprecated keys
* refactor: address review comments
---------
Co-authored-by: mdatelle <mike@datelle.net>
Enables a sandbox at /graphql for developers wanting to interact with the unraid api.
* chore(api): enable introspection by default in deploy-dev script
* refactor(api): load emhttp state during init
so emhttp settings are always available, even at module load time.
* feat(api): add csrf token to graphql playground
* Revert "refactor(api): load emhttp state during init"
* feat(api): use custom apollo plugin to render sandbox
* fix(api): limit auto restarts to 10
so persistent errors (e.g. during server boot) don't cause an infinite
loop that's difficult for users to see
* fix(api): invoke js directly from pm2 instead of npm script
npm script wraps it in a child process, so we lose ipc.
* fix(api): update api key service test for ensureDir change
* chore: increase max_restart threshold to 10s per cycle