# Interface: ResourceEntry

Internal representation of a resource in the registry. Extends ResourceRequirement with resolution state and plugin ownership.

## Extends[​](#extends "Direct link to Extends")

* [`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md)

## Properties[​](#properties "Direct link to Properties")

### alias[​](#alias "Direct link to alias")

```ts
alias: string;

```

Unique alias for this resource within the plugin (e.g., 'warehouse', 'secrets'). Used for UI/display.

#### Inherited from[​](#inherited-from "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`alias`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#alias)

***

### description[​](#description "Direct link to description")

```ts
description: string;

```

Human-readable description of why this resource is needed

#### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`description`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#description)

***

### fields[​](#fields "Direct link to fields")

```ts
fields: Record<string, ResourceFieldEntry>;

```

Map of field name to env and optional description. Single-value types use one key (e.g. id); multi-value (database, secret) use multiple keys.

#### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`fields`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#fields)

***

### permission[​](#permission "Direct link to permission")

```ts
permission: ResourcePermission;

```

Required permission level for the resource

#### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`permission`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#permission)

***

### permissionSources?[​](#permissionsources "Direct link to permissionSources?")

```ts
optional permissionSources: Record<string, ResourcePermission>;

```

Per-plugin permission tracking. Maps plugin name to the permission it originally requested. Populated when multiple plugins share the same resource.

***

### plugin[​](#plugin "Direct link to plugin")

```ts
plugin: string;

```

Plugin(s) that require this resource (comma-separated if multiple)

***

### required[​](#required "Direct link to required")

```ts
required: boolean;

```

Whether this resource is required (true) or optional (false)

#### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`required`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#required)

***

### resolved[​](#resolved "Direct link to resolved")

```ts
resolved: boolean;

```

Whether the resource has been resolved (all field env vars set)

***

### resourceKey[​](#resourcekey "Direct link to resourceKey")

```ts
resourceKey: string;

```

Stable key for machine use (env naming, composite keys, app.yaml). Required.

#### Inherited from[​](#inherited-from-5 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`resourceKey`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#resourcekey)

***

### type[​](#type "Direct link to type")

```ts
type: ResourceType;

```

Type of Databricks resource required

#### Inherited from[​](#inherited-from-6 "Direct link to Inherited from")

[`ResourceRequirement`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md).[`type`](/appkit/docs/api/appkit/Interface.ResourceRequirement.md#type)

***

### values?[​](#values "Direct link to values?")

```ts
optional values: Record<string, string>;

```

Resolved value per field name. Populated by validate() when all field env vars are set.
