Y42 Project Structure

In Y42, you can achieve a clean set-up and separation of concerns in your solutions by leveraging the two possible structural levels: Organizations and spaces.

Organization

Organizations are the highest level organizational structure in Y42. An organization consists of:

  • A set of users and teams that can be provisioned and de-provisioned
  • Organization-wide settings affecting access control, billing, usability preferences, and beyond
  • A set of Y42 spaces in which your users build isolated solutions

We encourage Y42 customers to use a single organization, as it offers enough access control capabilities to hide classified projects. If your concern is keeping an air-tight separation between use cases and company functions, spaces are ideally suited for delivering such functionality.

Although users are provisioned by the first organization to give them Y42 access, your users could potentially belong to multiple organizations.

Spaces

Spaces are the isolated containers where your Y42 projects happen. Every space is connected to a GitLab repository storing the files defining your solution and to a BigQuery instance hosting the Dataset of tables used in that space.

Working in spaces keeps your project separated on different levels:

  • Interface level: Only the selected space's data assets will be discoverable in the app. This affects the asset lists in all product areas, the data lineage, and the global search
  • Filesystem level: Linking the space to an isolated repository means that there can be no clashes between equally-named assets across spaces, nor unintentional changes to files due to double references
  • Access control level: Space-specific access control settings permit fine-grained permissions

Special considerations

One can get data from one space to another using the BigQuery integration to import the needed dataset and tables.

It is possible to replicate a space by spinning up a new one from a repository that has been forked from the repository of the first space. Subsequent updates to the second repository would not affect the first one.