Ore icon indicating copy to clipboard operation
Ore copied to clipboard

Max length for version names, channel names, project names

Open felixoi opened this issue 6 years ago • 5 comments

felixoi avatar Jan 06 '18 12:01 felixoi

Here's a dump of all string columns currently in the schema:

 notifications.action                    | character varying(255)
 notifications.message                   | character varying(255)
 organizations.name                      | character varying(20)
 play_evolutions.apply_script            | text
 play_evolutions.hash                    | character varying(255)
 play_evolutions.last_problem            | text
 play_evolutions.revert_script           | text
 play_evolutions.state                   | character varying(255)
 project_api_keys.value                  | character varying(255)
 project_channels.name                   | character varying(255)
 project_flags.comment                   | character varying(255)
 project_log_entries.message             | text
 project_log_entries.tag                 | character varying(255)
 project_pages.contents                  | text
 project_pages.name                      | character varying(255)
 project_pages.slug                      | character varying(255)
 projects_deleted.description            | character varying(255)
 projects_deleted.homepage               | text
 projects_deleted.issues                 | text
 projects_deleted.name                   | character varying(255)
 projects_deleted.owner_name             | character varying(255)
 projects_deleted.slug                   | character varying(255)
 projects_deleted.source                 | text
 projects.description                    | character varying(255)
 project_settings.homepage               | character varying(255)
 project_settings.issues                 | character varying(255)
 project_settings.license_name           | character varying(255)
 project_settings.license_url            | character varying(255)
 project_settings.source                 | character varying(255)
 projects.name                           | character varying(255)
 projects.owner_name                     | character varying(255)
 projects.plugin_id                      | character varying(255)
 projects.slug                           | character varying(255)
 project_tags.data                       | character varying(255)
 project_tags.name                       | character varying(255)
 project_version_downloads.cookie        | character varying(36)
 project_version_download_warnings.token | character varying(255)
 project_versions.assets                 | character varying(510)
 project_versions.dependencies           | character varying(255)[]
 project_versions.description            | text
 project_versions.file_name              | character varying(255)
 project_versions.hash                   | character varying(32)
 project_versions.signature_file_name    | character varying(255)
 project_versions.version_string         | character varying(255)
 project_views.cookie                    | character varying(36)
 users.avatar_url                        | text
 users.email                             | character varying(255)
 user_sessions.token                     | character varying(255)
 user_sessions.username                  | character varying(255)
 users.full_name                         | character varying(255)
 user_sign_ons.nonce                     | character varying(255)
 users.name                              | character varying(255)
 users.pgp_pub_key                       | text
 users.tagline                           | character varying(255)

We should try to make sensible lengths for most of these

simon816 avatar Jan 15 '18 23:01 simon816

Does 64 characters sound good?

phase avatar Mar 05 '18 20:03 phase

https://github.com/SpongePowered/plugin-meta/blob/master/src/main/java/org/spongepowered/plugin/meta/PluginMetadata.java#L61 (64 characters)

kashike avatar Aug 25 '18 21:08 kashike

Commenting here to say that the current max project name length is 25. Not sure if we want to keep that

Katrix avatar Feb 18 '19 15:02 Katrix

Been some time now and the DB has evolved a bit. Here are the current text columns in the DB

project_flags.comment                       character varying(255)
logged_actions.new_state                    text
logged_actions.old_state                    text
user_organization_roles.role_type           character varying
notifications.action                        character varying(255)
organizations.name                          character varying(20)
project_pages.name                          character varying(255)
project_pages.slug                          character varying(255)
project_pages.contents                      text
project_log_entries.tag                     character varying(255)
project_log_entries.message                 text
project_settings.homepage                   character varying(255)
project_settings.issues                     character varying(255)
project_settings.source                     character varying(255)
project_settings.license_name               character varying(255)
project_settings.license_url                character varying(255)
project_settings.support                    character varying(255)
roles.name                                  character varying(255)
roles.title                                 character varying(255)
roles.color                                 character varying(255)
project_channels.name                       character varying(255)
user_project_roles.role_type                character varying
project_version_download_warnings.token     character varying(255)
project_version_tags.name                   character varying(255)
project_version_tags.data                   character varying(255)
project_version_visibility_changes.comment  text
project_version_downloads.cookie            character varying(36)
project_visibility_changes.comment          text
projects.plugin_id                          character varying(255)
projects.name                               character varying(255)
projects.slug                               character varying(255)
projects.owner_name                         character varying(255)
projects.description                        character varying(255)
user_sign_ons.nonce                         character varying(255)
users.full_name                             character varying(255)
users.name                                  character varying(255)
users.email                                 character varying(255)
users.tagline                               character varying(255)
users.language                              character varying(16)
project_views.cookie                        character varying(36)
user_sessions.username                      character varying(255)
user_sessions.token                         character varying(255)
project_api_keys.value                      character varying(255)
project_versions.version_string             character varying(255)
project_versions.description                text
project_versions.hash                       character varying(32)
project_versions.file_name                  character varying(255)
api_keys.name                               character varying(255)
api_keys.token_identifier                   character varying(255)
api_keys.token                              text
api_sessions.token                          character varying(255)

As for stuff that needs a better limit, I'd say they are: Channel names, project plugin id (64), project name, project slug, project owner name (20), user name (20), user session username (20), project versions version string, maybe version tag and data, need to check that we check the description max length (255) and filename max length (255)

Katrix avatar May 17 '19 18:05 Katrix