spacebarchat / spacebarchat/server
Registration Token Generation is broken
Nobody has claimed this yet.
- 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:
- Make a GET Request to 'https://example.fosscord.instance/api/auth/generate-registration-tokens' with User Token that has OPERATOR rights.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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