ObjectStackObjectStack

Sharing

Sharing protocol schemas

Organization-Wide Defaults (OWD) The baseline security posture for an object.

Source: packages/spec/src/security/sharing.zod.ts

TypeScript Usage

import { CriteriaSharingRuleSchema, OWDModel, ShareRecipientType, SharingLevel, SharingRuleSchema, SharingRuleType } from '@objectstack/spec/security';
import type { CriteriaSharingRule, OWDModel, ShareRecipientType, SharingLevel, SharingRule, SharingRuleType } from '@objectstack/spec/security';

// Validate data
const result = CriteriaSharingRuleSchema.parse(data);

CriteriaSharingRule

Properties

PropertyTypeRequiredDescription
namestringUnique rule name (snake_case)
labelstringoptionalHuman-readable label
descriptionstringoptionalAdministrative notes
objectstringTarget Object Name
activebooleanoptional
accessLevelEnum<'read' | 'edit'>optional
sharedWith{ type: Enum<'user' | 'team' | 'position' | 'unit_and_subordinates' | 'business_unit'>; value: string }The recipient of the shared access
_lockEnum<'none' | 'no-overlay' | 'no-delete' | 'full'>optionalItem-level lock — controls overlay & delete (ADR-0010).
_lockReasonstringoptionalHuman-readable reason shown when a write is refused by _lock.
_lockSourceEnum<'artifact' | 'package' | 'env-forced'>optionalLayer that set _lock (artifact | package | env-forced).
_provenanceEnum<'package' | 'org' | 'env-forced'>optionalOrigin of the item (package | org | env-forced).
_packageIdstringoptionalOwning package machine id.
_packageVersionstringoptionalOwning package version.
_lockDocsUrlstringoptionalOptional documentation link surfaced next to _lockReason.
type'criteria'
conditionstring | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }Predicate (CEL). e.g. Precord.department == "Sales"

OWDModel

Allowed Values

  • private
  • public_read
  • public_read_write
  • controlled_by_parent

ShareRecipientType

Allowed Values

  • user
  • team
  • position
  • unit_and_subordinates
  • business_unit

SharingLevel

Allowed Values

  • read
  • edit

SharingRule

Properties

PropertyTypeRequiredDescription
namestringUnique rule name (snake_case)
labelstringoptionalHuman-readable label
descriptionstringoptionalAdministrative notes
objectstringTarget Object Name
activebooleanoptional
accessLevelEnum<'read' | 'edit'>optional
sharedWith{ type: Enum<'user' | 'team' | 'position' | 'unit_and_subordinates' | 'business_unit'>; value: string }The recipient of the shared access
_lockEnum<'none' | 'no-overlay' | 'no-delete' | 'full'>optionalItem-level lock — controls overlay & delete (ADR-0010).
_lockReasonstringoptionalHuman-readable reason shown when a write is refused by _lock.
_lockSourceEnum<'artifact' | 'package' | 'env-forced'>optionalLayer that set _lock (artifact | package | env-forced).
_provenanceEnum<'package' | 'org' | 'env-forced'>optionalOrigin of the item (package | org | env-forced).
_packageIdstringoptionalOwning package machine id.
_packageVersionstringoptionalOwning package version.
_lockDocsUrlstringoptionalOptional documentation link surfaced next to _lockReason.
type'criteria'
conditionstring | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }Predicate (CEL). e.g. Precord.department == "Sales"

SharingRuleType

Allowed Values

  • criteria

On this page