> For the complete documentation index, see [llms.txt](https://docs.guardianservice.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.guardianservice.app/technical-information/users/standard-registry-users-schemas-and-policies/policies/creating-a-policy-using-policy-configurator/policy-workflow-step-20.md).

# Policy Workflow Step 20

An “approve\_page” needs a document source to approve a document. Therefore, we are adding a document source below the “approve\_page” by clicking on the “Documents” button in the top navigation bar.

The “approve\_documents\_grid” has the permission for the Standard Registry, and must be active by default as of data type “approve.”

In contrast to the installer case where we create documents and send them for approval, we have no dependencies on the incoming documents. We take account of this by adding the “save\_new\_approve\_documents” dependency.

Next, we add the required custom UI fields on the approval UI form. Note that since this is a general approval form we do not have to specify a schema or an entity type for the UI.

<figure><img src="/files/MA8I1z5zZ5tJUFYFlcQf" alt=""><figcaption></figcaption></figure>

Below are the screenshots of the field inputs

![](https://i.imgur.com/QhLlhqw.png)

![](https://i.imgur.com/TEIQq0w.png)

![](https://i.imgur.com/XE0ipG7.png)

![](https://i.imgur.com/sFnas74.png)

![](https://i.imgur.com/uH3CC8S.png)

**Programmatically this workflow step looks like this:**

```
        // Grid listing VCs of the Installers, which require approval from the Standard Registry.
        {
          "tag": "approve_documents_grid",
          "defaultActive": true,
          "permissions": [
            "OWNER"
          ],
          "blockType": "InterfaceDocumentsSourceBlock",
          // Displays all VC documents from all Installers.
          "onlyOwnDocuments": false,
          "dataType": "approve",
          "dependencies": [
            // Refreshed when a VC is stored in the DB
            "save_new_approve_document"
          ],
          "uiMetaData": {
            "fields": [
              {
                "name": "document.issuer",
                "title": "Owner",
                "type": "text",
                "tooltip": "Installer did"
              },
              {
                "name": "createDate",
                "title": "Create Date",
                "type": "text"
              },
              {
                "name": "document",
                "title": "Document",
                "tooltip": "",
                "type": "button",
                "action": "dialog",
                "content": "View Document",
                "uiClass": "link",
                "dialogContent": "VC",
                "dialogClass": "",
                "dialogType": "json"
              },
              {
                "name": "status",
                "title": "Status",
                "type": "text"
              },
              // Column with the Approve/Reject buttons
              {
                "name": "status",
                "title": "Operation",
                "tooltip": "",
                "type": "block",
                "action": "block",
                "content": "",
                "uiClass": "",
                "bindBlock": "approve_documents_btn"
              }
            ]
          },
          "children": [],
          "filters": {}
        },
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.guardianservice.app/technical-information/users/standard-registry-users-schemas-and-policies/policies/creating-a-policy-using-policy-configurator/policy-workflow-step-20.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
