---
title: "Apps (AppDecl)"
description: "Generated from the doc schema (CatalogDocSchema, @canonify/kernel-catalog/doc): each field’s type, default and description are the schema’s own, and each example is a bundle file that readBundle…"
order: 2
id: "model/app"
---

# Apps (AppDecl)

Generated from the doc schema (`CatalogDocSchema`, @canonify/kernel-catalog/doc): each field’s type, default and description are the schema’s own, and each example is a bundle file that readBundle decodes. A field’s Example is its value in one of those examples.

## AppDecl {#appdecl}

An app: a SpringML or script app over the catalog (platform §2.8).

**Not yet typed** (owner: platform K6-APP APP.1 (epic kmm)). Until its owner types it, the doc checks the fields below and keeps every other field as JSON.

The `apps` slot of the doc holds these, keyed by id. In a bundle each is one file, `apps/<name>/app.json`, named by its `name`, which the file then leaves out.

| Field | Type | Required | Default | Example | Description |
|---|---|---|---|---|---|
| `id` | [AppId](shapes.md#appid) | yes (propose assigns it; a new declaration leaves it out) | — | — | An app id (`ap_…`); renames keep it. |
| `name` | [Ident](shapes.md#ident) | yes | — | — | The declaration name. |

Any other field: JSON.
