OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

app_config.promoted_to_preview

A tenant config draft was promoted to preview.

  • Type: event (event)
  • Version: 1.0.0
  • File: packages/libs/contracts-spec/src/app-config/events.ts
  • ```typescript

    import { ScalarTypeEnum, SchemaModel } from '@lssm-tech/lib.schema';

    field.key.label
    app_config.promoted_to_preview
    field.version.label
    1.0.0
    field.type.label
    event (event)
    field.title.label
    app_config.promoted_to_preview
    field.description.label

    A tenant config draft was promoted to preview.

  • Type: event (event)
  • Version: 1.0.0
  • File: packages/libs/contracts-spec/src/app-config/events.ts
  • ```typescript

    import { ScalarTypeEnum, SchemaModel } from '@lssm-tech/lib.schema';

    field.tags.label
    field.owners.label
    field.stability.label

    A tenant config draft was promoted to preview.

    Source Definition

    import { ScalarTypeEnum, SchemaModel } from '@lssm-tech/lib.schema';
    import { defineEvent } from '../events';
    import { OwnersEnum, StabilityEnum, TagsEnum } from '../ownership';
    
    export const ConfigPromotedToPreviewEvent = defineEvent({
    	meta: {
    		...lifecycleOwnership,
    		key: 'app_config.promoted_to_preview',
    		version: '1.0.0',
    		description: 'A tenant config draft was promoted to preview.',
    	},
    	payload: new SchemaModel({
    		name: 'ConfigPromotedToPreviewPayload',
    		fields: {
    			tenantId: { type: ScalarTypeEnum.ID(), isOptional: false },
    			appId: { type: ScalarTypeEnum.ID(), isOptional: false },
    			version: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
    			promotedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
    			warnings: {
    				type: ScalarTypeEnum.String_unsecure(),
    				isOptional: true,
    				isArray: true,
    			},
    		},
    	}),
    });