Logo
NeoArc Studio

Projection Profile Types Reference

Complete reference for the four projection profile types: database, search, schema, and none. Covers fields, behaviour differences, naming conventions, and type resolution for each profile.

Every projection carries a profileType that determines how entity names, property names, and abstract types are transformed in the target entity list. The profile type also controls which additional fields are available on target properties and which resolution rules apply during conflict detection.

Profile Type Summary

Profile TypePurposeNaming ConventionType ResolutionAdditional Property Fields
databaseMap model entities to database tables and columns for a specific vendor (SQL Server, PostgreSQL, MySQL, etc.)Applied from the linked DatabaseProfile (e.g. snake_case, PascalCase)Abstract types resolve to concrete database types via the profile's typeMappings arrayColumn type, parameter template, indexing hints, partitioning
searchMap model entities to search index fields for a specific search engine (Azure Cognitive Search, Elasticsearch, etc.)Applied from the linked SearchProfileAbstract types resolve to search field types via the profile's fieldMappingsAnalyser, searchable, filterable, sortable, facetable, vector dimensions
schemaDefine API response/request shapes, type libraries, and serialisation contractsApplied from the linked SchemaProfile (typically camelCase)Abstract types resolve to serialisation types (string, number, boolean, array, object)Format hints, nullable, read-only, write-only, discriminator
documentDefine the structure and flow for document projection outputNo naming transformation appliedNo type resolution - uses model abstract types directlyDocument flow configuration, page layout
apiDefine API contracts including REST, AsyncAPI, webhooks, MCP, gRPC, and GraphQL endpointsApplied from the linked API profileAbstract types resolve to serialisation types appropriate for the API styleAPI type (rest, async, webhook, mcp, grpc, graphql), endpoint definitions, operation metadata
uiDesign model-projected wireframe screens with data-bound controlsNo naming transformation appliedNo type resolution - uses projection target entity typesScreen type, layout hints, control type inference, field bindings, API annotations
nonePure structural transformation with no profile-specific behaviour. Used for medallion layers, staging, and intermediate transformationsNo naming transformation appliedNo type resolution - uses model abstract types directlyNone

ProjectionProfileType Union

The TypeScript union type that defines all valid profile types.

export type ProjectionProfileType = 'database' | 'search' | 'schema' | 'document' | 'api' | 'ui' | 'none';

Profile Fields on ProjectionDocument

Two fields on the projection document control profile behaviour.

FieldTypeDescription
profileTypeProjectionProfileTypeDeclares which profile category this projection belongs to. Determines which additional fields appear in the property editor and which conflict rules apply.
profileIdstring (UUID)References a specific profile instance. For database projections this points to a DatabaseProfile; for search it points to a SearchProfile; for schema it points to a SchemaProfile. Unused when profileType is 'none'.

Database Profile

When profileType is 'database', the projection links to a DatabaseProfile stored at .neoarc-project/profiles/{name}.neoarc-db-profile.json.

BehaviourDetail
Naming conventionEntity and property names are transformed according to the profile's namingConvention field (e.g. snake_case for PostgreSQL, PascalCase for SQL Server).
Type resolutionEach property's abstract type (string, integer, boolean, etc.) is resolved to the vendor-specific concrete type via the profile's typeMappings array. Parameter templates like NVARCHAR({maxLength}) are populated from property constraints.
Conflict detectionType mismatches between source and target trigger resolution prompts. Constraint narrowing (maxLength, precision) is detected and flagged.
Supported vendorsmicrosoft-sql-server, postgresql, mysql, oracle, mongodb, sqlite, snowflake, mariadb, cockroachdb, azure-table-storage, azure-cosmos-db, amazon-dynamodb, apache-cassandra, plus any custom vendor name.
Abstract typesstring, integer, float, decimal, boolean, date, datetime, uuid, json, text, binary, enum.

Search Profile

When profileType is 'search', the projection links to a SearchProfile.

BehaviourDetail
Naming conventionField names are transformed according to the profile's naming convention (typically camelCase for search APIs).
Type resolutionAbstract types resolve to search engine field types (Edm.String, Edm.Int32, keyword, text, etc.) via the profile's fieldMappings.
Additional property fieldsEach target property gains search-specific attributes: searchable, filterable, sortable, facetable, analyser name, synonym map, vector dimensions, and scoring profile.
Index structureThe projection's entity/property structure maps directly to the search index schema. Properties marked as key become the document key field.

Schema Profile

When profileType is 'schema', the projection defines API request/response shapes, type libraries, or serialisation contracts.

BehaviourDetail
Naming conventionProperty names follow the profile's serialisation convention (typically camelCase for JSON APIs).
Type resolutionAbstract types resolve to serialisation primitives: string, number, integer, boolean, array, object.
Entity extendsSchema entities can extend other entities in the same projection, creating inheritance hierarchies for polymorphic API responses.
Consumer root selectionSchema projections serve as type libraries. Consumers (endpoints, integrations) select which entity is the root for a specific request/response.
Additional property fieldsFormat hints (date-time, email, uri), nullable, readOnly, writeOnly, discriminator field for polymorphism.

None (Pure Transformation)

When profileType is 'none', the projection performs structural transformation without any profile-specific behaviour.

BehaviourDetail
Naming conventionNo transformation. Property and entity names remain as set by the architect.
Type resolutionNo resolution. Properties retain their abstract types from the source.
Use casesMedallion architecture layers (Bronze, Silver, Gold), staging areas, intermediate denormalisation steps, data vault hubs/links/satellites, star schema fact/dimension tables.
ChainingCommonly used as intermediate projections in a chain: Model to Bronze (none) to Silver (none) to Gold (database).

Structure Modes

Orthogonal to profile type, every projection declares a structure mode that affects how entities relate to each other.

ModeDescriptionRoot EntityTypical Profile Types
flatAll entities are peers at the same level. Used for relational tables, search indices, and flat API schemas.Not applicabledatabase, search, schema, none
nestedEntities form a tree with a single root. Child entities are nested inside the root. Used for document databases and hierarchical JSON responses.Required (rootEntityId)database (MongoDB, Cosmos DB), schema

Profile Selection in the Editor

The profile type is set when creating a new projection or changed from the projection settings panel. Changing the profile type clears the profileId and resets all profile-specific property fields. Existing transformation mappings and entity structures are preserved.