---
sidebar_label: Manage metadata from the UI
doc_id: dd2ea506-1711-4dcd-a890-7cf2f606d082
description: >-
  Nullplatform auto-renders metadata forms during entity creation using catalog
  specs, no manual UI needed.
keywords:
  - forms
  - metadata
  - entity creation
  - catalog specifications
  - autogeneration
title: Autogenerate forms during entity creation
canonical: 'https://docs.nullplatform.com/docs/catalog/forms-entity-creation'
---
# Autogenerate forms during entity creation

Nullplatform can automatically render metadata input forms during entity creation, like when you're adding a new
application, build, or namespace. These forms use catalog specifications and require no manual UI work.

If a catalog spec exists for the entity type, the platform:

- Adds a metadata section to the creation flow
- Validates inputs live as the user fills the form
- Creates a metadata instance once the entity is saved

This means structured data collection becomes a natural part of onboarding, with no extra steps.

## When are forms rendered?

A form will appear automatically if:

- A catalog specification exists for the entity type (e.g., `application`, `build`, `namespace`)
- The schema includes at least one field
- The field is marked `visibleOn: ["create"]` or left unscoped (which defaults to full visibility)

> 💡 You don’t need a full `uiSchema`, but adding one improves layout and widgets (like radios or grouped sections).
> See our [Designing the UI](/docs/json-ui-schema/overview) page for more info.

If no matching spec is found, the form step is skipped.

## Supported entities

Forms can be autogenerated during creation for:

- Applications
- Namespaces
- Builds

After creation, users can still view and edit these fields via the **Show all** button on the entity detail page.

## Real-world example: build creation

Let’s say you’ve defined the following catalog spec for the `build` entity:

```json
{
  "title": "Build Quality",
  "type": "object",
  "properties": {
    "coverage_percent": {
      "type": "integer",
      "description": "Code coverage %"
    },
    "vulnerabilities": {
      "type": "integer",
      "description": "Known vulnerabilities"
    }
  },
  "required": ["coverage_percent", "vulnerabilities"]
}
```
When a user creates a new build, this form will automatically appear:

- `coverage_percent` (validated as an integer)
- `vulnerabilities` (required field)

All values will be attached as a metadata instance once the build is created.
