@elevasis/core 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -1
- package/dist/index.js +6 -3
- package/dist/organization-model/index.d.ts +3 -1
- package/dist/organization-model/index.js +6 -3
- package/dist/test-utils/index.d.ts +175 -0
- package/dist/test-utils/index.js +8 -2
- package/package.json +1 -1
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +36 -38
- package/src/auth/multi-tenancy/index.ts +20 -17
- package/src/auth/multi-tenancy/memberships/api-schemas.ts +142 -126
- package/src/auth/multi-tenancy/memberships/index.ts +26 -22
- package/src/auth/multi-tenancy/permissions.test.ts +42 -0
- package/src/auth/multi-tenancy/permissions.ts +104 -0
- package/src/organization-model/README.md +1 -0
- package/src/organization-model/__tests__/defaults.test.ts +19 -6
- package/src/organization-model/contracts.ts +4 -3
- package/src/organization-model/defaults.ts +3 -2
- package/src/organization-model/domains/navigation.ts +27 -20
- package/src/organization-model/organization-model.mdx +3 -0
- package/src/organization-model/published.ts +5 -4
- package/src/platform/constants/versions.ts +3 -3
- package/src/platform/registry/index.ts +86 -91
- package/src/platform/registry/resource-registry.ts +905 -866
- package/src/reference/_generated/contracts.md +36 -38
- package/src/scaffold-registry/__tests__/index.test.ts +125 -1
- package/src/scaffold-registry/__tests__/schema.test.ts +48 -20
- package/src/scaffold-registry/index.ts +236 -188
- package/src/scaffold-registry/schema.ts +47 -22
- package/src/supabase/database.types.ts +2880 -2719
- package/src/test-utils/fixtures/memberships.ts +82 -80
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
43
43
|
}>;
|
|
44
44
|
description: z.ZodOptional<z.ZodString>;
|
|
45
45
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
devOnly: z.ZodOptional<z.ZodBoolean>;
|
|
46
47
|
icon: z.ZodOptional<z.ZodString>;
|
|
47
48
|
featureId: z.ZodOptional<z.ZodString>;
|
|
48
49
|
featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -326,6 +327,7 @@ declare const SEO_FEATURE_ID: "seo";
|
|
|
326
327
|
declare const SALES_PIPELINE_SURFACE_ID: "crm.pipeline";
|
|
327
328
|
declare const PROSPECTING_LISTS_SURFACE_ID: "lead-gen.lists";
|
|
328
329
|
declare const OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID: "operations.organization-graph";
|
|
330
|
+
declare const OPERATIONS_COMMAND_VIEW_SURFACE_ID: "operations.command-view";
|
|
329
331
|
|
|
330
332
|
declare const OrganizationModelBrandingSchema: z.ZodObject<{
|
|
331
333
|
organizationName: z.ZodString;
|
|
@@ -694,5 +696,5 @@ declare function createFoundationOrganizationModel(override: DeepPartial<Organiz
|
|
|
694
696
|
getOrganizationSurface: (surfaceId: string) => FoundationNavigationSurface | undefined;
|
|
695
697
|
};
|
|
696
698
|
|
|
697
|
-
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
699
|
+
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_COMMAND_VIEW_SURFACE_ID, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
698
700
|
export type { DeepPartial, FoundationBranding, FoundationNavigationSurface, FoundationOrganizationModel, FoundationSurfaceIcon, FoundationSurfaceType, NodeIdPath, NodeIdString, OrganizationModel, OrganizationModelBranding, OrganizationModelCustomerFirmographics, OrganizationModelCustomerSegment, OrganizationModelCustomers, OrganizationModelFeature, OrganizationModelGoals, OrganizationModelKeyResult, OrganizationModelObjective, OrganizationModelOfferings, OrganizationModelOperationEntry, OrganizationModelOperationSemanticClass, OrganizationModelOperations, OrganizationModelPricingModel, OrganizationModelProduct, OrganizationModelProjects, OrganizationModelProspecting, OrganizationModelRole, OrganizationModelRoles, OrganizationModelSales, OrganizationModelStatusEntry, OrganizationModelStatusSemanticClass, OrganizationModelStatuses, OrganizationModelTechStackEntry };
|
package/dist/index.js
CHANGED
|
@@ -249,6 +249,7 @@ var SEO_FEATURE_ID = "seo";
|
|
|
249
249
|
var SALES_PIPELINE_SURFACE_ID = "crm.pipeline";
|
|
250
250
|
var PROSPECTING_LISTS_SURFACE_ID = "lead-gen.lists";
|
|
251
251
|
var OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID = "operations.organization-graph";
|
|
252
|
+
var OPERATIONS_COMMAND_VIEW_SURFACE_ID = "operations.command-view";
|
|
252
253
|
|
|
253
254
|
// src/organization-model/domains/navigation.ts
|
|
254
255
|
var SurfaceTypeSchema = z.enum(["page", "dashboard", "graph", "detail", "list", "settings"]);
|
|
@@ -259,6 +260,7 @@ var SurfaceDefinitionSchema = z.object({
|
|
|
259
260
|
surfaceType: SurfaceTypeSchema,
|
|
260
261
|
description: DescriptionSchema.optional(),
|
|
261
262
|
enabled: z.boolean().default(true),
|
|
263
|
+
devOnly: z.boolean().optional(),
|
|
262
264
|
icon: IconNameSchema.optional(),
|
|
263
265
|
featureId: ModelIdSchema.optional(),
|
|
264
266
|
featureIds: ReferenceIdsSchema,
|
|
@@ -898,8 +900,9 @@ var DEFAULT_ORGANIZATION_MODEL = {
|
|
|
898
900
|
{
|
|
899
901
|
id: "operations.command-view",
|
|
900
902
|
label: "Command View",
|
|
901
|
-
enabled:
|
|
902
|
-
path: "/operations/command-view"
|
|
903
|
+
enabled: true,
|
|
904
|
+
path: "/operations/command-view",
|
|
905
|
+
devOnly: true
|
|
903
906
|
},
|
|
904
907
|
{
|
|
905
908
|
id: "operations.overview",
|
|
@@ -1178,4 +1181,4 @@ function createFoundationOrganizationModel(override) {
|
|
|
1178
1181
|
};
|
|
1179
1182
|
}
|
|
1180
1183
|
|
|
1181
|
-
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
1184
|
+
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_COMMAND_VIEW_SURFACE_ID, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
@@ -43,6 +43,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
43
43
|
}>;
|
|
44
44
|
description: z.ZodOptional<z.ZodString>;
|
|
45
45
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
devOnly: z.ZodOptional<z.ZodBoolean>;
|
|
46
47
|
icon: z.ZodOptional<z.ZodString>;
|
|
47
48
|
featureId: z.ZodOptional<z.ZodString>;
|
|
48
49
|
featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -326,6 +327,7 @@ declare const SEO_FEATURE_ID: "seo";
|
|
|
326
327
|
declare const SALES_PIPELINE_SURFACE_ID: "crm.pipeline";
|
|
327
328
|
declare const PROSPECTING_LISTS_SURFACE_ID: "lead-gen.lists";
|
|
328
329
|
declare const OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID: "operations.organization-graph";
|
|
330
|
+
declare const OPERATIONS_COMMAND_VIEW_SURFACE_ID: "operations.command-view";
|
|
329
331
|
|
|
330
332
|
declare const OrganizationModelBrandingSchema: z.ZodObject<{
|
|
331
333
|
organizationName: z.ZodString;
|
|
@@ -694,5 +696,5 @@ declare function createFoundationOrganizationModel(override: DeepPartial<Organiz
|
|
|
694
696
|
getOrganizationSurface: (surfaceId: string) => FoundationNavigationSurface | undefined;
|
|
695
697
|
};
|
|
696
698
|
|
|
697
|
-
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
699
|
+
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_COMMAND_VIEW_SURFACE_ID, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
698
700
|
export type { DeepPartial, FoundationBranding, FoundationNavigationSurface, FoundationOrganizationModel, FoundationSurfaceIcon, FoundationSurfaceType, NodeIdPath, NodeIdString, OrganizationModel, OrganizationModelBranding, OrganizationModelCustomerFirmographics, OrganizationModelCustomerSegment, OrganizationModelCustomers, OrganizationModelFeature, OrganizationModelGoals, OrganizationModelKeyResult, OrganizationModelObjective, OrganizationModelOfferings, OrganizationModelOperationEntry, OrganizationModelOperationSemanticClass, OrganizationModelOperations, OrganizationModelPricingModel, OrganizationModelProduct, OrganizationModelProjects, OrganizationModelProspecting, OrganizationModelRole, OrganizationModelRoles, OrganizationModelSales, OrganizationModelStatusEntry, OrganizationModelStatusSemanticClass, OrganizationModelStatuses, OrganizationModelTechStackEntry };
|
|
@@ -249,6 +249,7 @@ var SEO_FEATURE_ID = "seo";
|
|
|
249
249
|
var SALES_PIPELINE_SURFACE_ID = "crm.pipeline";
|
|
250
250
|
var PROSPECTING_LISTS_SURFACE_ID = "lead-gen.lists";
|
|
251
251
|
var OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID = "operations.organization-graph";
|
|
252
|
+
var OPERATIONS_COMMAND_VIEW_SURFACE_ID = "operations.command-view";
|
|
252
253
|
|
|
253
254
|
// src/organization-model/domains/navigation.ts
|
|
254
255
|
var SurfaceTypeSchema = z.enum(["page", "dashboard", "graph", "detail", "list", "settings"]);
|
|
@@ -259,6 +260,7 @@ var SurfaceDefinitionSchema = z.object({
|
|
|
259
260
|
surfaceType: SurfaceTypeSchema,
|
|
260
261
|
description: DescriptionSchema.optional(),
|
|
261
262
|
enabled: z.boolean().default(true),
|
|
263
|
+
devOnly: z.boolean().optional(),
|
|
262
264
|
icon: IconNameSchema.optional(),
|
|
263
265
|
featureId: ModelIdSchema.optional(),
|
|
264
266
|
featureIds: ReferenceIdsSchema,
|
|
@@ -898,8 +900,9 @@ var DEFAULT_ORGANIZATION_MODEL = {
|
|
|
898
900
|
{
|
|
899
901
|
id: "operations.command-view",
|
|
900
902
|
label: "Command View",
|
|
901
|
-
enabled:
|
|
902
|
-
path: "/operations/command-view"
|
|
903
|
+
enabled: true,
|
|
904
|
+
path: "/operations/command-view",
|
|
905
|
+
devOnly: true
|
|
903
906
|
},
|
|
904
907
|
{
|
|
905
908
|
id: "operations.overview",
|
|
@@ -1178,4 +1181,4 @@ function createFoundationOrganizationModel(override) {
|
|
|
1178
1181
|
};
|
|
1179
1182
|
}
|
|
1180
1183
|
|
|
1181
|
-
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
1184
|
+
export { CustomerSegmentSchema, CustomersDomainSchema, DEFAULT_ORGANIZATION_MODEL, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_STATUSES, FeatureSchema, FirmographicsSchema, GoalsDomainSchema, KeyResultSchema, LinkSchema, MONITORING_FEATURE_ID, NodeIdPathSchema, NodeIdStringSchema, OPERATIONS_COMMAND_VIEW_SURFACE_ID, OPERATIONS_FEATURE_ID, OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID, ObjectiveSchema, OfferingsDomainSchema, OperationEntrySchema, OperationSemanticClassSchema, OperationsDomainSchema, OrganizationModelSchema, PROJECTS_FEATURE_ID, PROJECTS_INDEX_SURFACE_ID, PROJECTS_VIEW_CAPABILITY_ID, PROSPECTING_FEATURE_ID, PROSPECTING_LISTS_SURFACE_ID, PricingModelSchema, ProductSchema, RoleSchema, RolesDomainSchema, SALES_FEATURE_ID, SALES_PIPELINE_SURFACE_ID, SEO_FEATURE_ID, SETTINGS_FEATURE_ID, StatusEntrySchema, StatusSemanticClassSchema, StatusesDomainSchema, TechStackEntrySchema, UiPositionSchema, createFoundationOrganizationModel, defineOrganizationModel, resolveOrganizationModel };
|
|
@@ -1675,6 +1675,7 @@ type Database = {
|
|
|
1675
1675
|
Row: {
|
|
1676
1676
|
config: Json;
|
|
1677
1677
|
created_at: string | null;
|
|
1678
|
+
effective_permissions: string[];
|
|
1678
1679
|
id: string;
|
|
1679
1680
|
membership_status: string | null;
|
|
1680
1681
|
organization_id: string;
|
|
@@ -1686,6 +1687,7 @@ type Database = {
|
|
|
1686
1687
|
Insert: {
|
|
1687
1688
|
config?: Json;
|
|
1688
1689
|
created_at?: string | null;
|
|
1690
|
+
effective_permissions?: string[];
|
|
1689
1691
|
id?: string;
|
|
1690
1692
|
membership_status?: string | null;
|
|
1691
1693
|
organization_id: string;
|
|
@@ -1697,6 +1699,7 @@ type Database = {
|
|
|
1697
1699
|
Update: {
|
|
1698
1700
|
config?: Json;
|
|
1699
1701
|
created_at?: string | null;
|
|
1702
|
+
effective_permissions?: string[];
|
|
1700
1703
|
id?: string;
|
|
1701
1704
|
membership_status?: string | null;
|
|
1702
1705
|
organization_id?: string;
|
|
@@ -1722,6 +1725,147 @@ type Database = {
|
|
|
1722
1725
|
}
|
|
1723
1726
|
];
|
|
1724
1727
|
};
|
|
1728
|
+
org_rol_assignments: {
|
|
1729
|
+
Row: {
|
|
1730
|
+
granted_at: string;
|
|
1731
|
+
granted_by: string | null;
|
|
1732
|
+
membership_id: string;
|
|
1733
|
+
role_id: string;
|
|
1734
|
+
};
|
|
1735
|
+
Insert: {
|
|
1736
|
+
granted_at?: string;
|
|
1737
|
+
granted_by?: string | null;
|
|
1738
|
+
membership_id: string;
|
|
1739
|
+
role_id: string;
|
|
1740
|
+
};
|
|
1741
|
+
Update: {
|
|
1742
|
+
granted_at?: string;
|
|
1743
|
+
granted_by?: string | null;
|
|
1744
|
+
membership_id?: string;
|
|
1745
|
+
role_id?: string;
|
|
1746
|
+
};
|
|
1747
|
+
Relationships: [
|
|
1748
|
+
{
|
|
1749
|
+
foreignKeyName: "org_rol_assignments_granted_by_fkey";
|
|
1750
|
+
columns: ["granted_by"];
|
|
1751
|
+
isOneToOne: false;
|
|
1752
|
+
referencedRelation: "users";
|
|
1753
|
+
referencedColumns: ["id"];
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
foreignKeyName: "org_rol_assignments_membership_id_fkey";
|
|
1757
|
+
columns: ["membership_id"];
|
|
1758
|
+
isOneToOne: false;
|
|
1759
|
+
referencedRelation: "org_memberships";
|
|
1760
|
+
referencedColumns: ["id"];
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
foreignKeyName: "org_rol_assignments_role_id_fkey";
|
|
1764
|
+
columns: ["role_id"];
|
|
1765
|
+
isOneToOne: false;
|
|
1766
|
+
referencedRelation: "org_rol_definitions";
|
|
1767
|
+
referencedColumns: ["id"];
|
|
1768
|
+
}
|
|
1769
|
+
];
|
|
1770
|
+
};
|
|
1771
|
+
org_rol_definitions: {
|
|
1772
|
+
Row: {
|
|
1773
|
+
created_at: string;
|
|
1774
|
+
description: string | null;
|
|
1775
|
+
id: string;
|
|
1776
|
+
is_system: boolean;
|
|
1777
|
+
name: string;
|
|
1778
|
+
organization_id: string | null;
|
|
1779
|
+
slug: string;
|
|
1780
|
+
updated_at: string;
|
|
1781
|
+
};
|
|
1782
|
+
Insert: {
|
|
1783
|
+
created_at?: string;
|
|
1784
|
+
description?: string | null;
|
|
1785
|
+
id?: string;
|
|
1786
|
+
is_system?: boolean;
|
|
1787
|
+
name: string;
|
|
1788
|
+
organization_id?: string | null;
|
|
1789
|
+
slug: string;
|
|
1790
|
+
updated_at?: string;
|
|
1791
|
+
};
|
|
1792
|
+
Update: {
|
|
1793
|
+
created_at?: string;
|
|
1794
|
+
description?: string | null;
|
|
1795
|
+
id?: string;
|
|
1796
|
+
is_system?: boolean;
|
|
1797
|
+
name?: string;
|
|
1798
|
+
organization_id?: string | null;
|
|
1799
|
+
slug?: string;
|
|
1800
|
+
updated_at?: string;
|
|
1801
|
+
};
|
|
1802
|
+
Relationships: [
|
|
1803
|
+
{
|
|
1804
|
+
foreignKeyName: "org_rol_definitions_organization_id_fkey";
|
|
1805
|
+
columns: ["organization_id"];
|
|
1806
|
+
isOneToOne: false;
|
|
1807
|
+
referencedRelation: "organizations";
|
|
1808
|
+
referencedColumns: ["id"];
|
|
1809
|
+
}
|
|
1810
|
+
];
|
|
1811
|
+
};
|
|
1812
|
+
org_rol_grants: {
|
|
1813
|
+
Row: {
|
|
1814
|
+
granted_at: string;
|
|
1815
|
+
permission_key: string;
|
|
1816
|
+
role_id: string;
|
|
1817
|
+
};
|
|
1818
|
+
Insert: {
|
|
1819
|
+
granted_at?: string;
|
|
1820
|
+
permission_key: string;
|
|
1821
|
+
role_id: string;
|
|
1822
|
+
};
|
|
1823
|
+
Update: {
|
|
1824
|
+
granted_at?: string;
|
|
1825
|
+
permission_key?: string;
|
|
1826
|
+
role_id?: string;
|
|
1827
|
+
};
|
|
1828
|
+
Relationships: [
|
|
1829
|
+
{
|
|
1830
|
+
foreignKeyName: "org_rol_grants_permission_key_fkey";
|
|
1831
|
+
columns: ["permission_key"];
|
|
1832
|
+
isOneToOne: false;
|
|
1833
|
+
referencedRelation: "org_rol_permissions";
|
|
1834
|
+
referencedColumns: ["key"];
|
|
1835
|
+
},
|
|
1836
|
+
{
|
|
1837
|
+
foreignKeyName: "org_rol_grants_role_id_fkey";
|
|
1838
|
+
columns: ["role_id"];
|
|
1839
|
+
isOneToOne: false;
|
|
1840
|
+
referencedRelation: "org_rol_definitions";
|
|
1841
|
+
referencedColumns: ["id"];
|
|
1842
|
+
}
|
|
1843
|
+
];
|
|
1844
|
+
};
|
|
1845
|
+
org_rol_permissions: {
|
|
1846
|
+
Row: {
|
|
1847
|
+
created_at: string;
|
|
1848
|
+
description: string;
|
|
1849
|
+
is_org_grantable: boolean;
|
|
1850
|
+
key: string;
|
|
1851
|
+
updated_at: string;
|
|
1852
|
+
};
|
|
1853
|
+
Insert: {
|
|
1854
|
+
created_at?: string;
|
|
1855
|
+
description: string;
|
|
1856
|
+
is_org_grantable?: boolean;
|
|
1857
|
+
key: string;
|
|
1858
|
+
updated_at?: string;
|
|
1859
|
+
};
|
|
1860
|
+
Update: {
|
|
1861
|
+
created_at?: string;
|
|
1862
|
+
description?: string;
|
|
1863
|
+
is_org_grantable?: boolean;
|
|
1864
|
+
key?: string;
|
|
1865
|
+
updated_at?: string;
|
|
1866
|
+
};
|
|
1867
|
+
Relationships: [];
|
|
1868
|
+
};
|
|
1725
1869
|
organizations: {
|
|
1726
1870
|
Row: {
|
|
1727
1871
|
config: Json;
|
|
@@ -2551,6 +2695,13 @@ type Database = {
|
|
|
2551
2695
|
Args: never;
|
|
2552
2696
|
Returns: string;
|
|
2553
2697
|
};
|
|
2698
|
+
can_assign_role_in_org: {
|
|
2699
|
+
Args: {
|
|
2700
|
+
p_role_id: string;
|
|
2701
|
+
p_target_membership_id: string;
|
|
2702
|
+
};
|
|
2703
|
+
Returns: boolean;
|
|
2704
|
+
};
|
|
2554
2705
|
current_user_is_platform_admin: {
|
|
2555
2706
|
Args: never;
|
|
2556
2707
|
Returns: boolean;
|
|
@@ -2590,6 +2741,13 @@ type Database = {
|
|
|
2590
2741
|
Args: never;
|
|
2591
2742
|
Returns: string;
|
|
2592
2743
|
};
|
|
2744
|
+
has_org_permission: {
|
|
2745
|
+
Args: {
|
|
2746
|
+
org_id: string;
|
|
2747
|
+
perm_key: string;
|
|
2748
|
+
};
|
|
2749
|
+
Returns: boolean;
|
|
2750
|
+
};
|
|
2593
2751
|
is_org_admin: {
|
|
2594
2752
|
Args: {
|
|
2595
2753
|
org_id: string;
|
|
@@ -2622,6 +2780,22 @@ type Database = {
|
|
|
2622
2780
|
Args: never;
|
|
2623
2781
|
Returns: Json;
|
|
2624
2782
|
};
|
|
2783
|
+
recompute_all_memberships: {
|
|
2784
|
+
Args: never;
|
|
2785
|
+
Returns: undefined;
|
|
2786
|
+
};
|
|
2787
|
+
sync_all_memberships_with_role: {
|
|
2788
|
+
Args: {
|
|
2789
|
+
p_role_id: string;
|
|
2790
|
+
};
|
|
2791
|
+
Returns: undefined;
|
|
2792
|
+
};
|
|
2793
|
+
sync_one_membership: {
|
|
2794
|
+
Args: {
|
|
2795
|
+
p_membership_id: string;
|
|
2796
|
+
};
|
|
2797
|
+
Returns: undefined;
|
|
2798
|
+
};
|
|
2625
2799
|
upsert_user_profile: {
|
|
2626
2800
|
Args: never;
|
|
2627
2801
|
Returns: {
|
|
@@ -3164,6 +3338,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
|
|
|
3164
3338
|
}>;
|
|
3165
3339
|
description: z.ZodOptional<z.ZodString>;
|
|
3166
3340
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
3341
|
+
devOnly: z.ZodOptional<z.ZodBoolean>;
|
|
3167
3342
|
icon: z.ZodOptional<z.ZodString>;
|
|
3168
3343
|
featureId: z.ZodOptional<z.ZodString>;
|
|
3169
3344
|
featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
package/dist/test-utils/index.js
CHANGED
|
@@ -2404,6 +2404,7 @@ var TEST_MEMBERSHIPS = {
|
|
|
2404
2404
|
role_slug: "admin",
|
|
2405
2405
|
membership_status: "active",
|
|
2406
2406
|
config: {},
|
|
2407
|
+
effective_permissions: [],
|
|
2407
2408
|
created_at: "2025-01-01T00:00:00Z",
|
|
2408
2409
|
updated_at: "2025-01-01T00:00:00Z"
|
|
2409
2410
|
},
|
|
@@ -2415,6 +2416,7 @@ var TEST_MEMBERSHIPS = {
|
|
|
2415
2416
|
role_slug: "member",
|
|
2416
2417
|
membership_status: "active",
|
|
2417
2418
|
config: {},
|
|
2419
|
+
effective_permissions: [],
|
|
2418
2420
|
created_at: "2025-01-01T00:00:00Z",
|
|
2419
2421
|
updated_at: "2025-01-01T00:00:00Z"
|
|
2420
2422
|
},
|
|
@@ -2426,6 +2428,7 @@ var TEST_MEMBERSHIPS = {
|
|
|
2426
2428
|
role_slug: "member",
|
|
2427
2429
|
membership_status: "inactive",
|
|
2428
2430
|
config: {},
|
|
2431
|
+
effective_permissions: [],
|
|
2429
2432
|
created_at: "2025-01-01T00:00:00Z",
|
|
2430
2433
|
updated_at: "2025-01-01T00:00:00Z"
|
|
2431
2434
|
}
|
|
@@ -2453,6 +2456,7 @@ function createTestMembership(overrides) {
|
|
|
2453
2456
|
role_slug: "member",
|
|
2454
2457
|
membership_status: "active",
|
|
2455
2458
|
config: {},
|
|
2459
|
+
effective_permissions: [],
|
|
2456
2460
|
created_at: "2025-01-01T00:00:00Z",
|
|
2457
2461
|
updated_at: "2025-01-01T00:00:00Z",
|
|
2458
2462
|
...overrides
|
|
@@ -19635,6 +19639,7 @@ var SurfaceDefinitionSchema = z.object({
|
|
|
19635
19639
|
surfaceType: SurfaceTypeSchema,
|
|
19636
19640
|
description: DescriptionSchema.optional(),
|
|
19637
19641
|
enabled: z.boolean().default(true),
|
|
19642
|
+
devOnly: z.boolean().optional(),
|
|
19638
19643
|
icon: IconNameSchema.optional(),
|
|
19639
19644
|
featureId: ModelIdSchema.optional(),
|
|
19640
19645
|
featureIds: ReferenceIdsSchema,
|
|
@@ -20224,8 +20229,9 @@ var DEFAULT_ORGANIZATION_MODEL = {
|
|
|
20224
20229
|
{
|
|
20225
20230
|
id: "operations.command-view",
|
|
20226
20231
|
label: "Command View",
|
|
20227
|
-
enabled:
|
|
20228
|
-
path: "/operations/command-view"
|
|
20232
|
+
enabled: true,
|
|
20233
|
+
path: "/operations/command-view",
|
|
20234
|
+
devOnly: true
|
|
20229
20235
|
},
|
|
20230
20236
|
{
|
|
20231
20237
|
id: "operations.overview",
|
package/package.json
CHANGED
|
@@ -198,6 +198,12 @@ export type FeatureIconComponent = ComponentType<{ size?: number;
|
|
|
198
198
|
export type FeatureIconComponent = ComponentType<{ size?: number;
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
+
### `FeatureSidebarWidthResolver`
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
export type FeatureSidebarWidthResolver = number | ((context: { currentPath: string }) => number)
|
|
205
|
+
```
|
|
206
|
+
|
|
201
207
|
### `FeatureModule`
|
|
202
208
|
|
|
203
209
|
```typescript
|
|
@@ -212,6 +218,8 @@ export interface FeatureModule {
|
|
|
212
218
|
icon?: FeatureIconComponent
|
|
213
219
|
/** Sidebar component rendered when this feature's subtree route is active. */
|
|
214
220
|
sidebar?: FeatureSidebarComponent
|
|
221
|
+
/** Optional shell sidebar width override. Defaults to 250px. */
|
|
222
|
+
sidebarWidth?: FeatureSidebarWidthResolver
|
|
215
223
|
/** Operations-only bridge connecting this feature to the organization graph node. */
|
|
216
224
|
organizationGraph?: OrganizationGraphFeatureBridge
|
|
217
225
|
}
|
|
@@ -1007,44 +1015,34 @@ export interface HumanCheckpointDefinition extends ResourceDefinition {
|
|
|
1007
1015
|
### `DeploymentSpec`
|
|
1008
1016
|
|
|
1009
1017
|
```typescript
|
|
1010
|
-
/**
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
sdkVersion?: string
|
|
1020
|
-
/** Deployment version (semver) of the deployed bundle */
|
|
1021
|
-
deploymentVersion?: string
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
/**
|
|
1025
|
-
* Organization-specific resource collection
|
|
1026
|
-
*
|
|
1027
|
-
* Complete manifest of all automation resources for an organization.
|
|
1028
|
-
* Used by ResourceRegistry for discovery and Command View for visualization.
|
|
1018
|
+
/** Always undefined for system resources; present for API compatibility with RemoteOrgConfig consumers */
|
|
1019
|
+
sdkVersion?: never
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* Organization-specific resource collection
|
|
1024
|
+
*
|
|
1025
|
+
* Complete manifest of all automation resources for an organization.
|
|
1026
|
+
* Used by ResourceRegistry for discovery and Command View for visualization.
|
|
1029
1027
|
*/
|
|
1030
|
-
export interface DeploymentSpec {
|
|
1031
|
-
/** Deployment version (semver) */
|
|
1032
|
-
version: string
|
|
1033
|
-
/** Workflow definitions */
|
|
1034
|
-
workflows?: WorkflowDefinition[]
|
|
1035
|
-
/** Agent definitions */
|
|
1036
|
-
agents?: AgentDefinition[]
|
|
1037
|
-
|
|
1038
|
-
// Resource Manifest fields (optional for backwards compatibility)
|
|
1039
|
-
/** Trigger definitions - entry points that initiate executions */
|
|
1040
|
-
triggers?: TriggerDefinition[]
|
|
1041
|
-
/** Integration definitions - external service connections */
|
|
1042
|
-
integrations?: IntegrationDefinition[]
|
|
1043
|
-
/** Explicit relationship declarations between resources */
|
|
1044
|
-
relationships?: ResourceRelationships
|
|
1045
|
-
/** External automation resources (n8n, Make, Zapier, etc.) */
|
|
1046
|
-
externalResources?: ExternalResourceDefinition[]
|
|
1047
|
-
/** Human checkpoint definitions - human decision points in automation */
|
|
1048
|
-
humanCheckpoints?: HumanCheckpointDefinition[]
|
|
1028
|
+
export interface DeploymentSpec {
|
|
1029
|
+
/** Deployment version (semver) */
|
|
1030
|
+
version: string
|
|
1031
|
+
/** Workflow definitions */
|
|
1032
|
+
workflows?: WorkflowDefinition[]
|
|
1033
|
+
/** Agent definitions */
|
|
1034
|
+
agents?: AgentDefinition[]
|
|
1035
|
+
|
|
1036
|
+
// Resource Manifest fields (optional for backwards compatibility)
|
|
1037
|
+
/** Trigger definitions - entry points that initiate executions */
|
|
1038
|
+
triggers?: TriggerDefinition[]
|
|
1039
|
+
/** Integration definitions - external service connections */
|
|
1040
|
+
integrations?: IntegrationDefinition[]
|
|
1041
|
+
/** Explicit relationship declarations between resources */
|
|
1042
|
+
relationships?: ResourceRelationships
|
|
1043
|
+
/** External automation resources (n8n, Make, Zapier, etc.) */
|
|
1044
|
+
externalResources?: ExternalResourceDefinition[]
|
|
1045
|
+
/** Human checkpoint definitions - human decision points in automation */
|
|
1046
|
+
humanCheckpoints?: HumanCheckpointDefinition[]
|
|
1049
1047
|
}
|
|
1050
1048
|
```
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
// Config types
|
|
2
|
-
export * from './types'
|
|
3
|
-
|
|
4
|
-
//
|
|
5
|
-
export * from './
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
export * from './
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
export * from './
|
|
12
|
-
|
|
13
|
-
//
|
|
14
|
-
export * from './
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
export * from './
|
|
1
|
+
// Config types
|
|
2
|
+
export * from './types'
|
|
3
|
+
|
|
4
|
+
// Permission catalog (canonical PERMISSIONS constant + types)
|
|
5
|
+
export * from './permissions'
|
|
6
|
+
|
|
7
|
+
// Organization types
|
|
8
|
+
export * from './organizations/index'
|
|
9
|
+
|
|
10
|
+
// User types
|
|
11
|
+
export * from './users/index'
|
|
12
|
+
|
|
13
|
+
// Membership types
|
|
14
|
+
export * from './memberships/index'
|
|
15
|
+
|
|
16
|
+
// Invitation types
|
|
17
|
+
export * from './invitations/index'
|
|
18
|
+
|
|
19
|
+
// Credentials types
|
|
20
|
+
export * from './credentials/index'
|