**Source URL:** https://limited.veevavault.dev/commercial/mdl/component-types/appsecurityrule

# Appsecurityrule

**Class:** `metadata`

Internal Vault developers use Application Security Rules to control access to records. External developers cannot create custom Application Security Rules, but they can create two types of subcomponents, `Appsecurityfield` and `Appsecutityassignment`, that map `Appsecrityrule`s to `Object`s. This allows assignments to be moved between Vaults using migration packages (VPKs).

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String Max length: 60 | UI-friendly string in the Vault’s base language. |
| `active` | Type: Boolean | Indicates whether the component is active. |
| `allow_custom_objects` | Type: Boolean **Required** | If `true`, the rule can be applied to custom objects. |
| `description` | Type: String Max length: 255 | A general description of the rule. |
| `help_content` | Type: String Max length: 255 | UI-friendly help string. |

### Appsecurityfield

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String Max length: 60 | UI-friendly string in the Vault’s base language. |
| `active` | Type: Boolean | Indicates whether the component is active. |
| `multi_value` | Type: Boolean | If `true`, allows multiple values. |
| `object` | Type: Component | Reference to `Object` component. |
| `picklist` | Type: Component | Reference to the `Picklist` component. |
| `type` | Type: Enum **Required** Allowed values: OBJECT; PICKLIST; BOOLEAN | The type of the field. |

### Appsecurityassignment

| Attribute | Metadata | Description |
| --- | --- | --- |
| `label` | Type: String Max length: 60 | UI-friendly string in the Vault’s base language. |
| `active` | Type: Boolean | Indicates whether the component is active. |
| `appsecurityfield` | Type: ComponentReference | Legacy reference to `Appsecurityfield` subcomponent. As of 24R1.2, this attribute has been deprecated and replaced by `securityfield`. |
| `field` | Type: Subcomponent **Required** | Reference to an object field subcomponent in the format `Field.{field_name}`. For example, `Field.study_migration__v`. |
| `object` | Type: Component **Required** | Reference to `Object` component. |
| `securityfield` | Type: SubcomponentReference | Reference to `Appsecurityfield` subcomponent. |
| `securityrule` | Type: ComponentReference | (Read-only) Reference to the parent `Appsecurityrule` component. |

### Supported Operations

| Operation | Support |
| --- | --- |
| Create | No |
| Recreate | Yes\* |
| Alter | Yes\* |
| Drop | No |
| Rename | No |
| Describe | Yes |
| Generate Recreate | Yes |
| Queryable | Yes |

**Notes:**

*   **Recreate, Alter:** MDL Operation is supported only to create or alter custom subcomponents.

---

**Previous:** [Aitooltype](/commercial/mdl/component-types/aitooltype)  
**Next:** [Atomicsecurity](/commercial/mdl/component-types/atomicsecurity)