Ore
Ore copied to clipboard
Max length for version names, channel names, project names
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
Does 64 characters sound good?
https://github.com/SpongePowered/plugin-meta/blob/master/src/main/java/org/spongepowered/plugin/meta/PluginMetadata.java#L61 (64 characters)
Commenting here to say that the current max project name length is 25. Not sure if we want to keep that
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)