@company-semantics/contracts 2.15.0 → 2.17.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@company-semantics/contracts",
3
- "version": "2.15.0",
3
+ "version": "2.17.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED — do not edit. Run pnpm generate:spec-hash to regenerate.
2
- export const SPEC_HASH = '7e7e7989604b' as const;
3
- export const SPEC_HASH_FULL = '7e7e7989604b04f9af766c8ebcfe875445c12cec0fa4c4a071680454b635ea2c' as const;
2
+ export const SPEC_HASH = '3d5da96bdeb1' as const;
3
+ export const SPEC_HASH_FULL = '3d5da96bdeb12a1223f19d67956bfa0a481abc37813c181c0897a10c7e8f9b80' as const;
@@ -1815,6 +1815,23 @@ export interface paths {
1815
1815
  patch?: never;
1816
1816
  trace?: never;
1817
1817
  };
1818
+ "/api/org-units/{unitId}/my-authority": {
1819
+ parameters: {
1820
+ query?: never;
1821
+ header?: never;
1822
+ path?: never;
1823
+ cookie?: never;
1824
+ };
1825
+ /** Get the calling actor's OrgChart role + action booleans on a unit */
1826
+ get: operations["getMyOrgUnitAuthority"];
1827
+ put?: never;
1828
+ post?: never;
1829
+ delete?: never;
1830
+ options?: never;
1831
+ head?: never;
1832
+ patch?: never;
1833
+ trace?: never;
1834
+ };
1818
1835
  "/api/org-units/{unitId}/memberships": {
1819
1836
  parameters: {
1820
1837
  query?: never;
@@ -2467,6 +2484,92 @@ export interface paths {
2467
2484
  patch?: never;
2468
2485
  trace?: never;
2469
2486
  };
2487
+ "/api/{entityType}/{id}/acl": {
2488
+ parameters: {
2489
+ query?: never;
2490
+ header?: never;
2491
+ path?: never;
2492
+ cookie?: never;
2493
+ };
2494
+ /** List active ACL grants + visibility + owner for an entity */
2495
+ get: operations["getEntityAcl"];
2496
+ put?: never;
2497
+ post?: never;
2498
+ delete?: never;
2499
+ options?: never;
2500
+ head?: never;
2501
+ patch?: never;
2502
+ trace?: never;
2503
+ };
2504
+ "/api/{entityType}/{id}/acl/{principalType}/{principalId}": {
2505
+ parameters: {
2506
+ query?: never;
2507
+ header?: never;
2508
+ path?: never;
2509
+ cookie?: never;
2510
+ };
2511
+ get?: never;
2512
+ /** Grant (or update) a principal access to an entity */
2513
+ put: operations["upsertEntityAclGrant"];
2514
+ post?: never;
2515
+ /** Revoke a principal’s access to an entity */
2516
+ delete: operations["revokeEntityAclGrant"];
2517
+ options?: never;
2518
+ head?: never;
2519
+ patch?: never;
2520
+ trace?: never;
2521
+ };
2522
+ "/api/{entityType}/{id}/visibility": {
2523
+ parameters: {
2524
+ query?: never;
2525
+ header?: never;
2526
+ path?: never;
2527
+ cookie?: never;
2528
+ };
2529
+ get?: never;
2530
+ put?: never;
2531
+ post?: never;
2532
+ delete?: never;
2533
+ options?: never;
2534
+ head?: never;
2535
+ /** Change the visibility tier of an entity (owner-only) */
2536
+ patch: operations["patchEntityVisibility"];
2537
+ trace?: never;
2538
+ };
2539
+ "/api/{entityType}/{id}/transfer-ownership": {
2540
+ parameters: {
2541
+ query?: never;
2542
+ header?: never;
2543
+ path?: never;
2544
+ cookie?: never;
2545
+ };
2546
+ get?: never;
2547
+ put?: never;
2548
+ /** Transfer ownership of an entity to another user (owner-only) */
2549
+ post: operations["transferEntityOwnership"];
2550
+ delete?: never;
2551
+ options?: never;
2552
+ head?: never;
2553
+ patch?: never;
2554
+ trace?: never;
2555
+ };
2556
+ "/api/{entityType}/{id}/effective-access": {
2557
+ parameters: {
2558
+ query?: never;
2559
+ header?: never;
2560
+ path?: never;
2561
+ cookie?: never;
2562
+ };
2563
+ get?: never;
2564
+ put?: never;
2565
+ /** Resolve a principal’s effective access on an entity */
2566
+ post: operations["getEntityEffectiveAccess"];
2567
+ delete?: never;
2568
+ options?: never;
2569
+ head?: never;
2570
+ patch?: never;
2571
+ trace?: never;
2572
+ };
2470
2573
  "/api/internal-admin/impersonate/start": {
2471
2574
  parameters: {
2472
2575
  query?: never;
@@ -3925,6 +4028,16 @@ export interface components {
3925
4028
  revokedAt: string | null;
3926
4029
  reason: string | null;
3927
4030
  };
4031
+ OrgUnitMyAuthorityResponse: {
4032
+ /** Format: uuid */
4033
+ unitId: string;
4034
+ role: ("ceo" | "leader" | "delegate" | "admin") | null;
4035
+ canManageMembers: boolean;
4036
+ canAssignDelegate: boolean;
4037
+ canAssignAdmin: boolean;
4038
+ canCreateSubUnit: boolean;
4039
+ canArchiveSubUnit: boolean;
4040
+ };
3928
4041
  OrgUnitMembershipListResponse: {
3929
4042
  /** Format: uuid */
3930
4043
  unitId: string;
@@ -4401,6 +4514,26 @@ export interface components {
4401
4514
  /** @enum {string} */
4402
4515
  accessLevel: "viewer" | "commenter" | "editor";
4403
4516
  };
4517
+ AclGrantRequest: {
4518
+ /** @enum {string} */
4519
+ access_level: "editor" | "commenter" | "viewer";
4520
+ };
4521
+ VisibilityPatchRequest: {
4522
+ /** @enum {string} */
4523
+ tier: "private" | "unit" | "org";
4524
+ };
4525
+ OwnerTransferRequest: {
4526
+ /** Format: uuid */
4527
+ new_owner_user_id: string;
4528
+ };
4529
+ EffectiveAccessRequest: {
4530
+ principal: {
4531
+ /** @enum {string} */
4532
+ type: "user" | "unit" | "org";
4533
+ /** Format: uuid */
4534
+ id: string;
4535
+ };
4536
+ };
4404
4537
  ImpersonationSessionResponse: {
4405
4538
  session: {
4406
4539
  impersonationSessionId: string;
@@ -7342,6 +7475,28 @@ export interface operations {
7342
7475
  };
7343
7476
  };
7344
7477
  };
7478
+ getMyOrgUnitAuthority: {
7479
+ parameters: {
7480
+ query?: never;
7481
+ header?: never;
7482
+ path: {
7483
+ unitId: string;
7484
+ };
7485
+ cookie?: never;
7486
+ };
7487
+ requestBody?: never;
7488
+ responses: {
7489
+ /** @description Resolved OrgChartRole + the five action booleans for the calling actor on the unit */
7490
+ 200: {
7491
+ headers: {
7492
+ [name: string]: unknown;
7493
+ };
7494
+ content: {
7495
+ "application/json": components["schemas"]["OrgUnitMyAuthorityResponse"];
7496
+ };
7497
+ };
7498
+ };
7499
+ };
7345
7500
  listOrgUnitMemberships: {
7346
7501
  parameters: {
7347
7502
  query?: never;
@@ -8444,6 +8599,208 @@ export interface operations {
8444
8599
  };
8445
8600
  };
8446
8601
  };
8602
+ getEntityAcl: {
8603
+ parameters: {
8604
+ query?: never;
8605
+ header?: never;
8606
+ path: {
8607
+ entityType: string;
8608
+ id: string;
8609
+ };
8610
+ cookie?: never;
8611
+ };
8612
+ requestBody?: never;
8613
+ responses: {
8614
+ /** @description Owner, visibility, and active ACL grants for the entity */
8615
+ 200: {
8616
+ headers: {
8617
+ [name: string]: unknown;
8618
+ };
8619
+ content?: never;
8620
+ };
8621
+ /** @description Entity not found or not visible to this caller */
8622
+ 404: {
8623
+ headers: {
8624
+ [name: string]: unknown;
8625
+ };
8626
+ content?: never;
8627
+ };
8628
+ };
8629
+ };
8630
+ upsertEntityAclGrant: {
8631
+ parameters: {
8632
+ query?: never;
8633
+ header?: never;
8634
+ path: {
8635
+ entityType: string;
8636
+ id: string;
8637
+ principalType: string;
8638
+ principalId: string;
8639
+ };
8640
+ cookie?: never;
8641
+ };
8642
+ requestBody: {
8643
+ content: {
8644
+ "application/json": components["schemas"]["AclGrantRequest"];
8645
+ };
8646
+ };
8647
+ responses: {
8648
+ /** @description Grant upserted */
8649
+ 200: {
8650
+ headers: {
8651
+ [name: string]: unknown;
8652
+ };
8653
+ content?: never;
8654
+ };
8655
+ /** @description Entity not found or not visible to this caller */
8656
+ 404: {
8657
+ headers: {
8658
+ [name: string]: unknown;
8659
+ };
8660
+ content?: never;
8661
+ };
8662
+ };
8663
+ };
8664
+ revokeEntityAclGrant: {
8665
+ parameters: {
8666
+ query?: never;
8667
+ header?: never;
8668
+ path: {
8669
+ entityType: string;
8670
+ id: string;
8671
+ principalType: string;
8672
+ principalId: string;
8673
+ };
8674
+ cookie?: never;
8675
+ };
8676
+ requestBody?: never;
8677
+ responses: {
8678
+ /** @description Grant revoked */
8679
+ 204: {
8680
+ headers: {
8681
+ [name: string]: unknown;
8682
+ };
8683
+ content?: never;
8684
+ };
8685
+ /** @description Entity not found or not visible to this caller */
8686
+ 404: {
8687
+ headers: {
8688
+ [name: string]: unknown;
8689
+ };
8690
+ content?: never;
8691
+ };
8692
+ };
8693
+ };
8694
+ patchEntityVisibility: {
8695
+ parameters: {
8696
+ query?: never;
8697
+ header?: never;
8698
+ path: {
8699
+ entityType: string;
8700
+ id: string;
8701
+ };
8702
+ cookie?: never;
8703
+ };
8704
+ requestBody: {
8705
+ content: {
8706
+ "application/json": components["schemas"]["VisibilityPatchRequest"];
8707
+ };
8708
+ };
8709
+ responses: {
8710
+ /** @description Visibility updated */
8711
+ 204: {
8712
+ headers: {
8713
+ [name: string]: unknown;
8714
+ };
8715
+ content?: never;
8716
+ };
8717
+ /** @description Invalid tier for this entity type (e.g. unit on meetings) */
8718
+ 400: {
8719
+ headers: {
8720
+ [name: string]: unknown;
8721
+ };
8722
+ content?: never;
8723
+ };
8724
+ /** @description Entity not found or not visible to this caller */
8725
+ 404: {
8726
+ headers: {
8727
+ [name: string]: unknown;
8728
+ };
8729
+ content?: never;
8730
+ };
8731
+ };
8732
+ };
8733
+ transferEntityOwnership: {
8734
+ parameters: {
8735
+ query?: never;
8736
+ header?: never;
8737
+ path: {
8738
+ entityType: string;
8739
+ id: string;
8740
+ };
8741
+ cookie?: never;
8742
+ };
8743
+ requestBody: {
8744
+ content: {
8745
+ "application/json": components["schemas"]["OwnerTransferRequest"];
8746
+ };
8747
+ };
8748
+ responses: {
8749
+ /** @description Ownership transferred */
8750
+ 204: {
8751
+ headers: {
8752
+ [name: string]: unknown;
8753
+ };
8754
+ content?: never;
8755
+ };
8756
+ /** @description Transfer not permitted for this entity type (e.g. meetings) */
8757
+ 400: {
8758
+ headers: {
8759
+ [name: string]: unknown;
8760
+ };
8761
+ content?: never;
8762
+ };
8763
+ /** @description Entity not found or not visible to this caller */
8764
+ 404: {
8765
+ headers: {
8766
+ [name: string]: unknown;
8767
+ };
8768
+ content?: never;
8769
+ };
8770
+ };
8771
+ };
8772
+ getEntityEffectiveAccess: {
8773
+ parameters: {
8774
+ query?: never;
8775
+ header?: never;
8776
+ path: {
8777
+ entityType: string;
8778
+ id: string;
8779
+ };
8780
+ cookie?: never;
8781
+ };
8782
+ requestBody: {
8783
+ content: {
8784
+ "application/json": components["schemas"]["EffectiveAccessRequest"];
8785
+ };
8786
+ };
8787
+ responses: {
8788
+ /** @description Most-permissive access level + source chain */
8789
+ 200: {
8790
+ headers: {
8791
+ [name: string]: unknown;
8792
+ };
8793
+ content?: never;
8794
+ };
8795
+ /** @description Entity not found or not visible to this caller */
8796
+ 404: {
8797
+ headers: {
8798
+ [name: string]: unknown;
8799
+ };
8800
+ content?: never;
8801
+ };
8802
+ };
8803
+ };
8447
8804
  startImpersonation: {
8448
8805
  parameters: {
8449
8806
  query?: never;
@@ -140,6 +140,11 @@ export const openApiRoutes = {
140
140
  '/api/workspace/resolve-path': ['POST'],
141
141
  '/api/workspace/resync-slack-logo': ['POST'],
142
142
  '/api/workspace/work-item-counts': ['GET'],
143
+ '/api/{entityType}/{id}/acl': ['GET'],
144
+ '/api/{entityType}/{id}/acl/{principalType}/{principalId}': ['DELETE', 'PUT'],
145
+ '/api/{entityType}/{id}/effective-access': ['POST'],
146
+ '/api/{entityType}/{id}/transfer-ownership': ['POST'],
147
+ '/api/{entityType}/{id}/visibility': ['PATCH'],
143
148
  '/auth/logout': ['POST'],
144
149
  '/auth/me': ['GET'],
145
150
  '/auth/sso/callback': ['GET', 'POST'],