# Submit a bulk field update on catalog entities

Submit an asynchronous bulk field update. Selects catalog entities by either a filter or a list of entityRefs and updates a single allowlisted field (given as key/value, e.g. key "owner", value "group:account/TeamA") on every entity the caller is permitted to edit. Validation and edit-permission are checked synchronously; the mutation is processed asynchronously. Returns an operationId to poll for status.

Endpoint: POST /v1/entities/bulk-field-update
Version: 1.0
Security: x-api-key

## Header parameters:

  - `Harness-Account` (string)
    Identifier field of the account the resource is scoped to.

## Request fields (application/json):

  - `filter` (object)

  - `filter.kind` (string, required)

  - `filter.type` (string)

  - `filter.owners` (array)

  - `filter.tags` (array)

  - `filter.lifecycle` (array)

  - `entityRefs` (array)
    Fully qualified entity refs, e.g. "component:account/svcA".

  - `properties` (array, required)
    The fields to update. Currently only "owner" is supported as a key.

  - `properties.key` (string, required)
    The field to update. Currently only "owner" is supported.

  - `properties.value` (string, required)
    The new value for the field, e.g. "group:account/TeamA".

  - `properties.mode` (string)
    Write mode. Defaults to REPLACE. APPEND is reserved for future scope.
    Enum: "REPLACE", "APPEND"

## Response 202 fields (application/json):

  - `operationId` (string)
    Identifier of the async bulk update operation. Poll GET .../bulk-field-update/{operationId}.

  - `status` (string)
    Initial status of the operation, e.g. QUEUED.

  - `matched` (integer)
    Number of entities matched (computed synchronously at submit).

  - `permitted` (integer)
    Number of matched entities the caller had edit permission on (computed synchronously at submit).


