Skip to main content

Attributes

Overview

Attributes are structured metadata fields used to describe, classify, search, route, report on, and control access to documents. They are better suited than free-form tags when the value has business meaning, needs validation, drives automation, or should be used consistently across a site.

Examples:

  • documentType = invoice
  • invoiceNumber = 1042
  • department = Finance
  • confidentiality = Restricted
  • status = Approved
  • retentionCategory = financial-record

Attributes are commonly used with Documents, Schemas, Search, Rulesets, Workflows, and Security.

Attribute Definitions vs Document Attributes

There are two related concepts:

ConceptWhat it meansExample API area
Attribute definitionA reusable field definition available within a site. It describes the attribute key, data type, and behavior./attributes
Document attributeA specific value attached to a specific document./documents/{documentId}/attributes

Think of an attribute definition as the field setup, and a document attribute as the value stored on an individual document.

Example:

LevelExample
Attribute definitiondepartment is a STRING attribute available for the site.
Document attributeDocument abc123 has department = Finance.

Attribute Data Model

An attribute is described by three main pieces:

FieldPurpose
keyThe attribute name, such as department, invoiceNumber, or status.
dataTypeThe kind of value the attribute stores.
typeThe attribute's permission or system behavior, such as STANDARD, GOVERNANCE, or OPA-related access use.

Document attribute values can be single-value or multi-value depending on the API shape and schema rules used by the site.

Value Types and Special Types

FormKiQ supports standard value types and special-purpose attribute types.

Value Types

Data typeUse forExample
STRINGText values, categories, identifiers, names, status values, and dates stored as strings.department = Finance
NUMBERNumeric values used for sorting, filtering, comparison, reporting, or calculations.invoiceTotal = 1250.75
BOOLEANTrue/false values.isApproved = true

Special Types

Data typeUse for
KEY_ONLYIdentifier-only attributes where the presence of the key is meaningful.
PUBLICATIONPublication-related attributes for document review and publishing processes.
RELATIONSHIPRelationships between documents, such as attachments or renditions.
WATERMARKWatermark configuration that can be attached to documents.

For document relationship examples, see Documents.

Attribute Types

FormKiQ supports several attribute behavior types:

TypePurpose
STANDARDGeneral-purpose attributes used for classification, search, reporting, workflows, and integrations.
GOVERNANCEAttributes that require GOVERN or ADMIN permissions to add, update, or delete.
OPA access attributesAttributes used by Open Policy Agent policies for attribute-based access control.

Use GOVERNANCE attributes for metadata that should be controlled by data governance or records-management roles. Use OPA-related access attributes when document metadata should influence access decisions.

For access-control details, see Security and Open Policy Agent.

Common Use Cases

Classification

Attributes can classify documents by type, department, region, owner, customer, or business process.

Examples:

  • documentType = contract
  • department = Legal
  • region = EMEA
  • customerId = acme

Search and Filtering

Attributes make document search more precise than filename or full-text search alone.

Examples:

  • Find invoices where vendor = Acme.
  • Find contracts where renewalDate is within a date range.
  • Find HR documents where employeeId = 12345.
  • Find records where confidentiality = Restricted.

For search behavior, see Search.

Workflow Routing

Attributes can drive workflow and ruleset decisions.

Examples:

  • Route invoiceTotal > 10000 to a senior approver.
  • Move status = Approved documents to a publication workflow.
  • Trigger review when retentionCategory = legal-hold.
  • Send documents from department = Finance to a finance queue.

For automation details, see Rulesets and Workflows.

Governance and Access Control

Attributes can help enforce governance and access policies.

Examples:

  • Use confidentiality = Restricted for sensitive records.
  • Use owner = username for owner-only access patterns.
  • Use retentionCategory to support retention review.
  • Use classification attributes to drive OPA access policies.

For access control, see Security.

Reporting and Analytics

Attributes are useful dimensions for reporting.

Examples:

  • Documents by department
  • Documents by document type
  • Documents missing required metadata
  • Documents by status or workflow stage
  • Records by retention category

For reporting patterns, see Reporting, Analytics, and Audit.

Schemas, Classifications, and Allowed Values

Attributes become more powerful when combined with schemas and classifications.

FeatureHow it relates to attributes
Site schemaDefines required and optional attributes for a site.
ClassificationDefines required and optional attributes for a document class.
Allowed valuesRestricts an attribute to approved values.
Composite keysSupports efficient searching across multiple attributes.
Localized allowed valuesSupports display values in different locales where configured.

Use schemas when you need consistency. Use classifications when different document types require different metadata rules.

Examples:

  • Invoice documents require invoiceNumber, vendor, and invoiceDate.
  • Contract documents require counterparty, effectiveDate, and renewalDate.
  • Employee records require employeeId, recordType, and department.

For details, see Schemas and Locales.

Reserved Attribute Keys

Some attribute keys are reserved for FormKiQ system use. Avoid using these keys for custom business metadata.

Reserved keyPurpose
ClassificationUsed for document classification.
RelationshipsUsed to manage document relationships.
MalwareScanResultStores malware scan results.
EsignatureDocusignEnvelopeIdTracks DocuSign envelope IDs.
EsignatureDocusignStatusTracks DocuSign signature status.

Watermark Attributes

WATERMARK attributes define watermark settings that can be applied to documents. A watermark can include text, image reference, position, rotation, and scale settings.

Common use cases:

  • Add CONFIDENTIAL to sensitive records.
  • Add DRAFT to documents under review.
  • Add a company logo or brand mark.
  • Apply visual status indicators before external distribution.

Watermark configuration can include:

PropertyPurpose
textWatermark text to display, such as CONFIDENTIAL or DRAFT.
rotationRotation angle.
imageDocumentIdDocument ID of an image to use as a watermark.
scaleScale behavior, such as BEST_FIT or ORIGINAL.
positionAnchor and offset settings for placement.

Example attribute definition:

{
"key": "WATERMARK_SETTING",
"dataType": "WATERMARK",
"watermark": {
"text": "CONFIDENTIAL"
}
}

Best Practices

Naming

Use clear, stable names that will still make sense as the system grows.

Good examples:

  • invoiceNumber
  • clientName
  • projectDeadline
  • approvalStatus
  • retentionCategory

Avoid unclear abbreviations, special characters, and names that are tied too tightly to one year or temporary project.

Use one naming convention consistently. camelCase is a practical default for custom attributes. FormKiQ reserved keys use PascalCase, such as Classification.

Data Type Selection

Choose data types based on how the value will be searched, validated, sorted, and reported.

NeedRecommended type
Category, status, owner, department, regionSTRING
Amount, score, count, duration, timestamp numberNUMBER
Yes/no or enabled/disabled stateBOOLEAN
Presence-only flagKEY_ONLY
Document relationshipRELATIONSHIP

For dates, choose a consistent representation before production. ISO 8601 strings are readable, while numeric timestamps can be useful for range queries and reporting.

Organization

Design attributes as a small data model, not as one-off labels.

Recommended practices:

  • Maintain a data dictionary for important attributes.
  • Define allowed values for controlled fields such as department, region, document type, and status.
  • Use schemas or classifications for required metadata.
  • Avoid duplicate meanings, such as both client and customerName unless the difference is intentional.
  • Prefer stable identifiers, such as customerId, when names may change.
  • Use composite keys when multi-attribute search performance matters.

Governance

Use controlled attributes for metadata that affects compliance, access, retention, or business process outcomes.

Examples:

  • confidentiality
  • retentionCategory
  • legalHold
  • recordType
  • owner
  • approvalStatus

Review governance attributes before changing names, allowed values, or schema rules because downstream workflows, searches, reports, and access policies may depend on them.

API Endpoints

Use the generated API reference for exact request and response schemas.

Attribute Definition Operations

OperationPurposeAPI reference
List attributesRetrieve attribute definitions available for a site.GET /attributes
Add attributeCreate a new attribute definition.POST /attributes
Get attributeRetrieve a specific attribute definition.GET /attributes/{key}
Update attributeUpdate an existing attribute definition.PATCH /attributes/{key}
Delete attributeDelete an attribute definition.DELETE /attributes/{key}
Get allowed valuesRetrieve allowed values for an attribute.GET /attributes/{key}/allowedValues

Document Attribute Operations

OperationPurposeAPI reference
Add document attributesAdd multiple attributes to a document.POST /documents/{documentId}/attributes
Set document attributesSet or replace document attributes.PUT /documents/{documentId}/attributes
Get document attributesRetrieve all attributes for a document.GET /documents/{documentId}/attributes
Get document attributeRetrieve one document attribute by key.GET /documents/{documentId}/attributes/{attributeKey}
Set document attribute valueSet a specific attribute value.PUT /documents/{documentId}/attributes/{attributeKey}/value
Delete document attributeDelete an attribute from a document.DELETE /documents/{documentId}/attributes/{attributeKey}
Delete document attribute valueDelete one value from a multi-value attribute.DELETE /documents/{documentId}/attributes/{attributeKey}/value

Schema and Classification Operations

OperationPurposeAPI reference
Get site schemaRetrieve the site schema.GET /sites/{siteId}/schema
Set site schemaCreate or update the site schema.PUT /sites/{siteId}/schema
Get schema allowed valuesRetrieve schema allowed values for an attribute.GET /sites/{siteId}/schema/document/attributes/{key}/allowedValues
List classificationsRetrieve site classifications.GET /sites/{siteId}/classifications
Add classificationCreate a classification.POST /sites/{siteId}/classifications
Get classificationRetrieve a classification.GET /sites/{siteId}/classifications/{classificationId}
Set classificationUpdate a classification.PUT /sites/{siteId}/classifications/{classificationId}
Delete classificationDelete a classification.DELETE /sites/{siteId}/classifications/{classificationId}
Get classification allowed valuesRetrieve allowed values for a classification attribute.GET /sites/{siteId}/classifications/{classificationId}/attributes/{key}/allowedValues

Where to Go Next