Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Merge requests
  • !7705

Merged
Created Sep 08, 2014 by Administrator@rootOwner

Serialize service properties

  • Overview 37
  • Commits 1
  • Changes 20

Created by: dblessing

What does this MR do?

Takes service 'properties' and serializes them in a single column. Anything that doesn't need to be queried directly and that may differ between different service types.

This is a straight across change - there are no UI changes or changes to the actual properties for a given service. That will come in other pull requests so this one stays simple and easy to review.

Are there points in the code the reviewer needs to double check?

Please check/test the migration. It seems to work as far as I can tell. However, if something isn't right it could cause a lot of issues for users.

This doesn't appear to break any current tests (well, after some fixing) 😄 Manual testing also shows identical behavior.

Why was this MR needed?

Currently, any service type is limited to a number of attributes: token, api_key, project_url, room, and subdomain.

When adding a new service the developer is faced with a decision to either work within the confines of the current attributes or create a new attribute. Creating a new attribute is overkill because not all services may use this attribute but it will be in the database anyway.

In the future this change could also improve user experience. For example, on some services users are forced to specify user/pass for a service in the project_url. This is ugly and unintuitive: https://user:[email protected]. This also leads to lots of URL manipulation inside the service. After this change we could create properties on a whim: user, pass, and project_url and have a form field for each independently.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: github/fork/dblessing/serialize_service_properties