build-system
build-system copied to clipboard
Increase the `access_token` length to be able to store info coming from almalinux accounts
The problem in https://github.com/AlmaLinux/build-system/issues/322 was due to our inability to store a >2048 token coming from KeyCloak into db when logging in, see:
web_server-1 | DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class
web_server-1 | 'asyncpg.exceptions.StringDataRightTruncationError'>: value too long for type character
web_server-1 | varying(2048)
web_server-1 | [SQL: INSERT INTO user_oauth_accounts (access_token, user_id, oauth_name, expires_at, refresh_token,
web_server-1 | account_id, account_email) VALUES ($1::VARCHAR, $2::INTEGER, $3::VARCHAR, $4::INTEGER, $5::VARCHAR,
web_server-1 | $6::VARCHAR, $7::VARCHAR) RETURNING user_oauth_accounts.id]
...
Right now, and as a solution for https://github.com/AlmaLinux/build-system/issues/322, we shrinked the information coming from KeyCloak by removing the roles from the token. That's "fine" for now, but we'll need them when we move our role based access control to our identity provider (almalinux accounts). So we'd need to increase that column size to something that is comfortable enough, right now is at 2048.