Skip to main content
Metadata modules extend the visual modelers with technical specifications and implementation details. They add stereotypes, settings, and metadata to designer elements without changing the core modeling experience.

Overview

Metadata modules provide technical annotations for:

Database Mapping

RDBMS and DocumentDB specifications

API Specifications

HTTP, REST, and API Gateway configurations

Security

Authentication and authorization metadata

Technical Details

Implementation-specific settings

Database Metadata

Intent.Metadata.RDBMS

Module ID: Intent.Metadata.RDBMS
Version: 3.7.0+
Repository: View Source
Description: Support for describing Entities in Relational DB terms.
  • Table Mapping: Map entities to database tables
  • Column Specifications: Data types, lengths, precision
  • Primary Keys: Key type selection (GUID, int, long)
  • Foreign Keys: Relationship mapping to FKs
  • Indexes: Create table indexes and constraints
  • Key Creation Modes: Manual or automatic PK/FK management
  • Decimal Configuration: Precision and scale settings
Configuration Settings:
SettingOptionsDescription
Key Typeguid, long, intDefault type for surrogate and foreign keys
Key Creation ModeManual, ExplicitHow designer creates/manages PKs and FKs
Decimal precision and scalee.g., “16,4”Format: precision, scale
Stereotypes Added:
  • Table Name
  • Column Name
  • Data Type
  • Primary Key
  • Foreign Key
  • Index
  • Unique Constraint
Target Designers:
  • Domain Designer
  • Module Builder
Use Cases:
  • Entity Framework Core mapping
  • Hibernate/JPA configuration
  • Database schema generation
  • Migration scripts
Dependencies:
  • Intent.Common
  • Intent.Common.Types
  • Intent.Modelers.Domain

Intent.Metadata.DocumentDB

Module ID: Intent.Metadata.DocumentDB
Repository: View Source
Description: Support for describing Entities in Document Database terms.
  • Collection Mapping: Map entities to collections
  • Document Structure: Define document schemas
  • Embedded Documents: Nested document support
  • Partition Keys: Configure partitioning strategies
  • Indexing: Document index configuration
Supported Databases:
  • MongoDB
  • Azure Cosmos DB
  • Amazon DocumentDB
  • Couchbase
Use Cases:
  • NoSQL document modeling
  • Cosmos DB implementation
  • MongoDB schema design

API Metadata

Intent.Metadata.WebApi

Module ID: Intent.Metadata.WebApi
Version: 4.7.0+
Repository: View Source
Description: Support for describing Services in HTTP Web API terms.
  • HTTP Methods: GET, POST, PUT, DELETE, PATCH
  • Route Templates: URL path configuration
  • Query Parameters: Query string mapping
  • Request Bodies: Body parameter specifications
  • Response Types: HTTP status codes and response models
  • Content Negotiation: JSON, XML support
  • OpenAPI: Swagger/OpenAPI annotations
Stereotypes Added:
  • HTTP Verb (GET, POST, PUT, DELETE, PATCH)
  • Route
  • From Query
  • From Body
  • From Route
  • From Header
  • Status Code
  • Consumes/Produces
Target Designers:
  • Services Designer
  • Service Proxies Designer
Configuration Examples:
Operation: GetCustomer
  HTTP: GET
  Route: /api/customers/{id}
  Response: 200 OK (CustomerDTO)

Operation: CreateCustomer  
  HTTP: POST
  Route: /api/customers
  Body: CreateCustomerDTO
  Response: 201 Created (CustomerDTO)
Use Cases:
  • RESTful API design
  • ASP.NET Core Web API
  • Spring Boot REST controllers
  • OpenAPI/Swagger documentation
Dependencies:
  • Intent.Common
  • Intent.Common.Types
  • Intent.Metadata.Security
  • Intent.Modelers.Services
Extensions:
  • WebApi CQRS Extensions
  • WebApi Services Extensions
  • WebApi OpenApi Extensions

Intent.Metadata.ApiGateway

Module ID: Intent.Metadata.ApiGateway
Repository: View Source
Description: API Gateway configuration and routing metadata.
  • Gateway Routes: Define API gateway routing
  • Upstream Services: Map to backend services
  • Rate Limiting: Configure throttling
  • Authentication: Gateway-level auth
  • Load Balancing: Distribution strategies
Use Cases:
  • Microservices gateway configuration
  • Ocelot setup (.NET)
  • Kong configuration
  • API routing and aggregation

Security Metadata

Intent.Metadata.Security

Module ID: Intent.Metadata.Security
Repository: View Source
Description: Security-related metadata for authentication and authorization.
  • Authorization: Role-based and policy-based auth
  • Authentication: Auth scheme configuration
  • Secured Operations: Protect service operations
  • Claims: Define security claims
  • Roles: Define user roles
  • Policies: Authorization policies
Stereotypes Added:
  • Authorize
  • Allow Anonymous
  • Require Role
  • Require Policy
  • Require Claim
Security Patterns:
  • JWT Bearer tokens
  • OAuth 2.0
  • OpenID Connect
  • API keys
  • Basic authentication
Use Cases:
  • Secure REST APIs
  • Identity and access management
  • Authorization rules
  • Authentication flows
Target Designers:
  • Services Designer
  • Domain Designer

Metadata Application Patterns

Pattern 1: Entity to Database Table

Visual Model:
Domain Designer:
  Entity: Customer
    Attribute: Name (string)
    Attribute: Email (string)
Apply RDBMS Metadata:
RDBMS Stereotypes:
  Table Name: "Customers"
  Customer.Id: Primary Key (GUID)
  Customer.Name: Column (nvarchar(200))
  Customer.Email: Column (nvarchar(255)), Index
Generated Result:
  • SQL table creation script
  • Entity Framework entity configuration
  • Repository implementation

Pattern 2: Service to REST Endpoint

Visual Model:
Services Designer:
  Service: CustomerService
    Operation: GetCustomer(id: guid)
      Returns: CustomerDTO
Apply WebAPI Metadata:
WebAPI Stereotypes:
  Route: "/api/customers/{id}"
  HTTP Method: GET
  From Route: id parameter
  Returns: 200 OK, 404 Not Found
Generated Result:
  • ASP.NET Core controller
  • Swagger/OpenAPI documentation
  • HTTP client proxy

Pattern 3: Secured Operation

Visual Model:
Services Designer:
  Operation: DeleteCustomer(id: guid)
Apply Security Metadata:
Security Stereotypes:
  Authorize: RequireRole("Admin")
  HTTP Method: DELETE
Generated Result:
  • Authorization attribute
  • Role checking
  • 401/403 responses

Metadata Module Dependencies

All metadata modules depend on:
  • Intent.Common
  • Intent.Common.Types
  • Their target modeler (e.g., Intent.Modelers.Domain)
Intent.Metadata.RDBMS
  ├── Intent.Common
  ├── Intent.Common.Types
  └── Intent.Modelers.Domain

Intent.Metadata.WebApi
  ├── Intent.Common
  ├── Intent.Common.Types
  ├── Intent.Metadata.Security
  └── Intent.Modelers.Services

Metadata Selection Guide

I need to specify…Use this metadata module
SQL table names and columnsIntent.Metadata.RDBMS
HTTP routes and methodsIntent.Metadata.WebApi
Authorization rulesIntent.Metadata.Security
Document collectionsIntent.Metadata.DocumentDB
API gateway routesIntent.Metadata.ApiGateway

Common Combinations

Full-Stack Web Application

✓ Intent.Modelers.Domain (entities)
✓ Intent.Metadata.RDBMS (database)
✓ Intent.Modelers.Services (APIs)
✓ Intent.Metadata.WebApi (REST)
✓ Intent.Metadata.Security (auth)

Microservices Architecture

✓ Intent.Modelers.Services (service contracts)
✓ Intent.Metadata.WebApi (HTTP)
✓ Intent.Metadata.Security (API security)
✓ Intent.Metadata.ApiGateway (gateway)
✓ Intent.Modelers.Eventing (messaging)

Document Database Application

✓ Intent.Modelers.Domain (entities)
✓ Intent.Metadata.DocumentDB (collections)
✓ Intent.Modelers.Services (APIs)
✓ Intent.Metadata.WebApi (REST)

Best Practices

Separation of Concerns

Keep visual models (structure) separate from metadata (implementation details)

Consistent Naming

Use metadata to enforce naming conventions (table names, routes)

Reusable Patterns

Apply metadata stereotypes consistently across similar elements

Documentation

Use metadata to generate technical documentation (OpenAPI specs)

Next Steps

Domain Modeler

Learn about visual modeling

Common Modules

Explore foundation modules

Language Modules

Language-specific code generation

Module Overview

View all module categories