🔍 Organization Schema Blocks
Organization schema blocks provide JSON Schema definitions for organization data validation in Nodeblocks applications. These schemas ensure data integrity and provide clear contracts for organization-related API endpoints.
🎯 Overview
Organization schema blocks are designed to:
- Validate organization data before processing
- Support member role management within organizations
- Handle organization membership and permissions
- Enable organization search and filtering capabilities
- Support multi-tenant applications with organization isolation
- Provide contact and address management
📋 Organization Schema Types
Base Organization Schemas
Core organization structures used as foundations for other schemas.
Organization Creation Schemas
Schemas for organization creation with required field validation.
Organization Update Schemas
Schemas for organization modifications with optional field validation.
Organization Member Management Schemas
Schemas for managing member roles and membership in organizations.
Organization Query Schemas
Schemas for organization filtering and pagination parameters.
🔧 Available Organization Schemas
organizationSchema
Base organization schema defining the structure for organization data.
Purpose: Defines the structure for organization data with contact information
Schema Details:
- Type:
object
- Required Fields: None (base schema)
- Additional Properties:
false
(strict validation) - Properties:
name?: string
- Organization name (minimum length 1)description?: string
- Organization descriptioncontact_email?: string
- Organization contact email (email format)contact_phone?: string
- Organization contact phone numberaddress?: object
- Organization address objectlogo?: { objectId: string; type: string } | null
- Organization logo descriptor or null
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { organizationSchema } = schemas;
const validate = ajv.compile(organizationSchema as SchemaDefinition);
const isValid = validate({
name: 'Acme Corporation',
description: 'A leading technology company',
contact_email: 'contact@acme.com',
});
createOrganizationSchema
Organization creation schema with required fields for new organizations.
Purpose: Validates organization data during creation
Schema Details:
- Type:
object
- Required Fields:
organization.name
,organization.description
,organization.contact_email
,ownerId
- Optional Fields:
organization.contact_phone
,organization.address
,parentId
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Request Body:
required
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { createOrganizationSchema } = schemas;
const organizationSchema = createOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organization: {
name: 'Acme Corporation',
description: 'A leading technology company',
contact_email: 'contact@acme.com',
contact_phone: '+1-555-0123'
},
ownerId: 'identity123'
});
organizationMembersSchema
Organization members schema for managing member roles in organizations.
Purpose: Defines the structure for organization member assignments
Schema Details:
- Type:
array
- Required Fields:
identityId
,role
(for each item) - Minimum Items: 1
- Additional Properties:
false
(strict validation) - Properties:
identityId: string
- Member identity IDrole: string
- Member role in organization
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { organizationMembersSchema } = schemas;
const validate = ajv.compile(organizationMembersSchema as SchemaDefinition);
const isValid = validate([
{ identityId: 'identity1', role: 'admin' },
{ identityId: 'identity2', role: 'member' }
]);
upsertOrganizationMembersSchema
Organization members upsert schema for managing member roles in organization.
Purpose: Validates member role assignments for organization
Schema Details:
- Type:
array
- Required Fields:
identityId
,role
(for each item) - Minimum Items: 1
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Parameters:
organizationId
(path parameter) - Request Body:
required
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { upsertOrganizationMembersSchema } = schemas;
const membersSchema = upsertOrganizationMembersSchema({});
const validate = ajv.compile(membersSchema.schemas as SchemaDefinition);
const isValid = validate([
{ identityId: 'identity1', role: 'admin' },
{ identityId: 'identity2', role: 'member' }
]);
updateOrganizationSchema
Organization update schema with optional fields for organization modifications.
Purpose: Validates partial organization data updates
Schema Details:
- Type:
object
- Required Fields: None (all fields optional)
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Parameters:
organizationId
(path parameter) - Request Body:
required
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateOrganizationSchema } = schemas;
const organizationSchema = updateOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
description: 'Updated description',
contact_phone: '+1-555-9999'
});
getOrganizationSchema
Organization retrieval schema for getting single organizations.
Purpose: Validates requests for retrieving specific organizations
Schema Details:
- Parameters:
organizationId
(path parameter) - Purpose: Validates requests for retrieving specific organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { getOrganizationSchema } = schemas;
const organizationSchema = getOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
deleteOrganizationSchema
Organization deletion schema for removing organizations.
Purpose: Validates requests for deleting specific organizations
Schema Details:
- Parameters:
organizationId
(path parameter) - Purpose: Validates requests for deleting specific organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrganizationSchema } = schemas;
const organizationSchema = deleteOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
getOrganizationMemberRoleSchema
Organization member role retrieval schema for getting member roles in organizations.
Purpose: Validates requests for retrieving member roles in organizations
Schema Details:
- Parameters:
organizationId
,identityId
(path parameters) - Purpose: Validates requests for retrieving member roles in organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { getOrganizationMemberRoleSchema } = schemas;
const memberRoleSchema = getOrganizationMemberRoleSchema({});
const validate = ajv.compile(memberRoleSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
checkOrganizationMemberExistenceSchema
Organization member existence check schema for verifying member membership.
Purpose: Validates requests for checking member existence in organizations
Schema Details:
- Parameters:
organizationId
(path parameter),identityId
(query parameter) - Purpose: Validates requests for checking member existence in organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { checkOrganizationMemberExistenceSchema } = schemas;
const memberExistenceSchema = checkOrganizationMemberExistenceSchema({});
const validate = ajv.compile(memberExistenceSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
findOrganizationMembersSchema
Organization members search schema for finding members in organizations.
Purpose: Validates requests for finding members in organizations
Schema Details:
- Parameters:
organizationId
(path parameter) - Purpose: Validates requests for finding members in organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationMembersSchema } = schemas;
const membersSchema = findOrganizationMembersSchema({});
const validate = ajv.compile(membersSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
deleteOrganizationMemberSchema
Organization member deletion schema for removing members from organizations.
Purpose: Validates requests for removing members from organizations
Schema Details:
- Parameters:
organizationId
,identityId
(path parameters) - Purpose: Validates requests for removing members from organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrganizationMemberSchema } = schemas;
const memberDeletionSchema = deleteOrganizationMemberSchema({});
const validate = ajv.compile(memberDeletionSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
findOrganizationsForMemberSchema
Schema for finding organizations for a given member, with optional role and includeInherited query parameters.
Purpose: Validates requests for organizations associated with a specific member, optionally filtered by role and inheritance
Schema Details:
- Path Parameters:
identityId
(required) - Query Parameters:
roles?
,includeInherited?
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationsForMemberSchema } = schemas;
const memberOrgsSchema = findOrganizationsForMemberSchema({});
const validate = ajv.compile(memberOrgsSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity456',
roles: 'admin',
includeInherited: true
});
findOrganizationsSchema
Organizations search schema for finding organizations with filtering and pagination.
Purpose: Validates requests for searching and paginating organizations
Schema Details:
- Query Parameters:
contact_email?: string
- Filter by contact email (email format)contact_phone?: string
- Filter by contact phonedescription?: string
- Filter by descriptionname?: string
- Filter by name (minimum length 1)page?: number
- Pagination page numberlimit?: number
- Pagination limit
- Purpose: Validates requests for searching and paginating organizations
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationsSchema } = schemas;
const organizationsSchema = findOrganizationsSchema({});
const validate = ajv.compile(organizationsSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Acme',
contact_email: 'contact@acme.com',
page: 1,
limit: 10
});
findOrganizationDescendantsSchema
Organization descendants retrieval schema for getting descendant organizations in hierarchy.
Purpose: Validates requests for retrieving descendant organizations with optional depth control
Schema Details:
- Parameters:
organizationId
(path parameter),depth?
(optional query parameter, number >= 1)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationDescendantsSchema } = schemas;
const descendantsSchema = findOrganizationDescendantsSchema({});
const validate = ajv.compile(descendantsSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
depth: 2
});
🔗 Related Documentation
- Organization Domain Overview - Organization domain overview