Skip to content

[Usage-based] Attribute workspace instances on start #10533

@jankeromnes

Description

@jankeromnes

Is your feature request related to a problem? Please describe

In the context of usage-based billing (#9036), we've identified that it's important to immediately "attribute" a workspace instance to a project, and to a "customer" (i.e. a Team or a User) when the instance starts.

This cannot be done asynchronously / later on, because any of these relationships from instance to project/customer can change at any time:

  • Workspace (can be deleted)
  • Project (can be deleted, can possibly change ownership in the future?)
  • User (can be deleted, can join/leave teams, can upgrade/cancel)
  • Team (can be deleted, can upgrade/cancel)

Thus, it's important to determine and persist the attributed final customer/account every time a workspace instance is started.

Describe the behaviour you'd like

Attribution can be determined in various ways:

  • Workspace Instance → Workspace → Project? → Owner(User/Team)
  • Workspace Instance → Workspace → Owner(User) (→ Team?)

Once determined on instance start, this information could be persisted:

  • As new fields in d_b_workspace_instance (e.g. projectId?, plus userId? and/or teamId?)
  • In a new database (e.g. a DB reserved for Usage accounting)

Describe alternatives you've considered

Additional context

Metadata

Metadata

Assignees

Labels

team: webappIssue belongs to the WebApp team

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions