**Source URL:** https://general.veevavault.dev/medical/mdl/component-types/appsecurityrule.md

# 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: StringMax length: 60 | UI-friendly string in the Vault’s base language. |
| active | Type: Boolean | Indicates whether the component is active. |
| allow_custom_objects | Type: BooleanRequired | If true, the rule can be applied to custom objects. |
| description | Type: StringMax length: 255 | A general description of the rule. |
| help_content | Type: StringMax length: 255 | UI-friendly help string. |

### Appsecurityfield {#appsecurityfield}

| Attribute | Metadata | Description |
| --- | --- | --- |
| label | Type: StringMax 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: EnumRequiredAllowed values:OBJECTPICKLISTBOOLEAN | The type of the field. |

### Appsecurityassignment {#appsecurityassignment}

| Attribute | Metadata | Description |
| --- | --- | --- |
| label | Type: StringMax 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: SubcomponentRequired | Reference to an object field subcomponent in the format Field.{field_name}. For example, Field.study_migration__v. |
| object | Type: ComponentRequired | Reference to Object component. |
| securityfield | Type: SubcomponentReference | Reference to Appsecurityfield subcomponent. |
| securityrule | Type: ComponentReference | (Read-only) Reference to the parent Appsecurityrule component. |

### Supported Operations {#supported-operations}

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

<ul style="padding-left:1.5em;margin-top:0.5rem"><li>**Recreate, Alter:** <span>MDL Operation is supported only to create or alter custom subcomponents.</span></li></ul>


---

**Previous:** [Actiontrigger](/medical/mdl/component-types/actiontrigger)  
**Next:** [Atomicsecurity](/medical/mdl/component-types/atomicsecurity)