Extending Organizations
There are many ways you can extend the organization's data model in your applications: you will use this entity for the objects that are shared among the group's users.
For example, here is a popular scenario: we assume users can install integrations for their organizations. Integrations can have the following interface:
integration.ts
enum IntegrationType { Zapier, Notion, // etc}interface Integration<IntegrationData = unknown> { type: IntegrationType; data: IntegrationData;}
Then, you can extend the organization's interface and add an integrations
property to Organization
, and initialize it as an empty array []
when you create a new integration:
organization.ts
interface Organization { // ... integrations: Integration[];}