---
title: "Top level"
summary: "The Application envelope and project-wide fields inside spec."
status: shipped
generated: true
read_when:
  - "Starting a new project file"
  - "Working out which keys are required"
---

This page is generated from the same Go declarations the loader enforces, so it
cannot drift from what `ob validate` accepts.

## Fields on this page

`annotations` · `apiVersion` · `basePath` · `kind` · `metadata` · `name`

## Reference

| Field | Type | Default | What it does |
| --- | --- | --- | --- |
| `apiVersion` `*` | string | — | Authored Application API identity. |
| `basePath` | string | `/var/lib/onebox` | Absolute host directory beneath which Onebox stores application state and releases. Expects an absolute path with no control character or shell metacharacter. |
| `kind` `*` | string | — | Authored resource kind. |
| `metadata` `*` | object | — | Application identity and opaque user metadata. |
| `metadata.annotations` | map | — | Opaque user metadata that never affects plans or runtime behavior. |
| `metadata.name` `*` | — | — | The application's name. Expects lower-case letters, digits and hyphens, starting with a letter, at most 40 characters, and may not begin "onebox-" or be a name the host layout reserves. Stable application name used in generated runtime identities. |

`*` marks a field that is required within its own object.