Skip to content
This repository was archived by the owner on Apr 28, 2020. It is now read-only.
This repository was archived by the owner on Apr 28, 2020. It is now read-only.

Remove Organization and Team models from Lastuser #232

@jace

Description

@jace

Unlike #91, which proposes merging Organization and Team with User to form a new Principal model, this one proposes eliminating the two models entirely.

In the course of discussing #91, we’ve arrived at two distinct facets of a Principal: ownership and agency. Only User and Client (in specific circumstances) possess agency and are therefore classified as “actors”.

Ownership is a hard problem for Lastuser to address, especially delegated ownership via the Organization and Team hierarchies. Lastuser’s model doesn’t work at all for Hasjob, and in Funnel, it regularly causes breakage when attempting to synchronise. Funnel having to replicate Lastuser’s hierarchy and also provide it own models like UserGroup (a scoped version of Team) is indication that there can’t be a single way to define hierarchies.

Lastuser should lose the Organization and Team models and let a client app define them. Every other app can access them as client-provided resources, now that those APIs are worked out. The client app could be Funnel or whatever replaces it.

Transitions:

  1. Clients can be owned by organizations. This will now change to a primary owner and any number of secondary owners.
  2. The organizations and teams resources will become namespaced and other clients will need updating. Lastuser can temporarily support resource aliases.
  3. Usernames are a shared namespace between User and Organization. This will now need to become a Username model, where the username can be claimed by a User (limit 1) or a trusted Client (any number).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions