spacebarchat / spacebarchat/server

Registration Token Generation is broken

Open
#992 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug
Dominant language
TypeScript
Stars
2.2k
Forks
323
Avg merge
14h 48m
Merged PRs (30d)
4

Description

Describe the bug
Attempting to generate registration tokens results in HTTP Error Code 500.

To Reproduce
Steps to reproduce the behavior:

  1. Make a GET Request to 'https://example.fosscord.instance/api/auth/generate-registration-tokens' with User Token that has OPERATOR rights.
  2. See error

Expected behavior
A list of registration tokens or registration url's if include_url is set to true within the request url.

Console Logs

Mar 02 14:05:07 am-fc-instance npm[137655]: [Error] 400 /api/auth/generate-registration-tokens?count=1&include_url=true
Mar 02 14:05:07 am-fc-instance npm[137655]:  QueryFailedError: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: '1678399507871' for column `fosscord`.`valid_registration_tokens`.`expires_at` at row 1
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Query.<anonymous> (/home/moonbase/fosscord-server/node_modules/typeorm/driver/mysql/MysqlQueryRunner.js:158:37)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Query.<anonymous> (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:526:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Query._callback (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:488:16)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Sequence.end (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Query.ErrorPacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/sequences/Query.js:92:8)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Protocol._parsePacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Protocol.js:291:23)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Parser._parsePacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Parser.js:433:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Parser.write (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Parser.js:43:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Protocol.write (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Protocol.js:38:16)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Socket.<anonymous> (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:88:28)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Socket.<anonymous> (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:526:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Socket.emit (node:events:512:28)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Socket.emit (node:domain:489:12)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at addChunk (node:internal/streams/readable:324:12)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at readableAddChunk (node:internal/streams/readable:297:9)
Mar 02 14:05:07 am-fc-instance npm[137655]:     at Readable.push (node:internal/streams/readable:234:10) {
Mar 02 14:05:07 am-fc-instance npm[137655]:   query: 'INSERT INTO `valid_registration_tokens`(`token`, `created_at`, `expires_at`) VALUES (?, ?, ?)',
Mar 02 14:05:07 am-fc-instance npm[137655]:   parameters: [
Mar 02 14:05:07 am-fc-instance npm[137655]:     'redacted-token',
Mar 02 14:05:07 am-fc-instance npm[137655]:     2023-03-02T22:05:07.872Z,
Mar 02 14:05:07 am-fc-instance npm[137655]:     1678399507871
Mar 02 14:05:07 am-fc-instance npm[137655]:   ],
Mar 02 14:05:07 am-fc-instance npm[137655]:   driverError: Error: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: '1678399507871' for column `fosscord`.`valid_registration_tokens`.`expires_at` at row 1
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Sequence._packetToError (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Query.ErrorPacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/sequences/Query.js:79:18)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Protocol._parsePacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Protocol.js:291:23)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Parser._parsePacket (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Parser.js:433:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Parser.write (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Parser.js:43:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Protocol.write (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Protocol.js:38:16)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Socket.<anonymous> (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:88:28)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Socket.<anonymous> (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:526:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Socket.emit (node:events:512:28)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Socket.emit (node:domain:489:12)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at addChunk (node:internal/streams/readable:324:12)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at readableAddChunk (node:internal/streams/readable:297:9)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Readable.push (node:internal/streams/readable:234:10)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
Mar 02 14:05:07 am-fc-instance npm[137655]:       --------------------
Mar 02 14:05:07 am-fc-instance npm[137655]:       at Protocol._enqueue (/home/moonbase/fosscord-server/node_modules/mysql/lib/protocol/Protocol.js:144:48)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at PoolConnection.query (/home/moonbase/fosscord-server/node_modules/mysql/lib/Connection.js:198:25)
Mar 02 14:05:07 am-fc-instance npm[137655]:       at /home/moonbase/fosscord-server/node_modules/typeorm/driver/mysql/MysqlQueryRunner.js:148:36
Mar 02 14:05:07 am-fc-instance npm[137655]:       at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
Mar 02 14:05:07 am-fc-instance npm[137655]:     code: 'ER_TRUNCATED_WRONG_VALUE',
Mar 02 14:05:07 am-fc-instance npm[137655]:     errno: 1292,
Mar 02 14:05:07 am-fc-instance npm[137655]:     sqlMessage: "Incorrect datetime value: '1678399507871' for column `fosscord`.`valid_registration_tokens`.`expires_at` at row 1",
Mar 02 14:05:07 am-fc-instance npm[137655]:     sqlState: '22007',
Mar 02 14:05:07 am-fc-instance npm[137655]:     index: 0,
Mar 02 14:05:07 am-fc-instance npm[137655]:     sql: "INSERT INTO `valid_registration_tokens`(`token`, `created_at`, `expires_at`) VALUES ('redacted-token', '2023-03-02 14:05:07.872', 1678399507871)"
Mar 02 14:05:07 am-fc-instance npm[137655]:   },
Mar 02 14:05:07 am-fc-instance npm[137655]:   code: 'ER_TRUNCATED_WRONG_VALUE',
Mar 02 14:05:07 am-fc-instance npm[137655]:   errno: 1292,
Mar 02 14:05:07 am-fc-instance npm[137655]:   sqlMessage: "Incorrect datetime value: '1678399507871' for column `fosscord`.`valid_registration_tokens`.`expires_at` at row 1",
Mar 02 14:05:07 am-fc-instance npm[137655]:   sqlState: '22007',
Mar 02 14:05:07 am-fc-instance npm[137655]:   index: 0,
Mar 02 14:05:07 am-fc-instance npm[137655]:   sql: "INSERT INTO `valid_registration_tokens`(`token`, `created_at`, `expires_at`) VALUES ('redacted-token', '2023-03-02 14:05:07.872', 1678399507871)"
Mar 02 14:05:07 am-fc-instance npm[137655]: }
Mar 02 14:05:07 am-fc-instance npm[137655]: body: {}

System Information (please complete the following information):

  • OS: Arch Linux
  • Version (If not applicable skip):
  • Node Version: 19.6.1
  • Python 3 Version: 3.10.9

Env and Software info

  • Release: 0.1.0 (??)
  • Branch (if release is not applicable): master
  • Commit Hash (if release is not applicable): bd5f750024c1da7919ee780db971b67c840f929f
  • Database: MariaDB
  • Reverse Proxy: Nginx Proxy Manager and Bare Nginx
  • Thread Count: 1

Additional context
Using a REST API Tester to send authorization header and token.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the GET /api/auth/generate-registration-tokens endpoint and trace creation of valid_registration_tokens, focusing on the expires_at value reported in the MariaDB error. Reproduce the request with an operator token and verify that token generation returns a list or URLs when include_url=true without the datetime error.

Written by the indexing model from the issue text.

Assessment

Tech stack
mariadb, typescript
Domain
api, backend, databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.