terraform-provider-onyx/docs/resources/document_set.md
A document set: a named group of connector-credential pairs that users and assistants can search as one unit.
Onyx propagates changes to the search index in the background. is_up_to_date reports whether that has finished, and usually reads false right after an apply.
~> Private sets need Enterprise Edition. users and groups are rejected on Community Edition. is_public = false with neither set makes a set nobody can use.
# A document set groups connector-credential pairs so users and assistants can
# search them as one unit.
resource "onyx_document_set" "engineering" {
name = "engineering"
description = "Design docs, runbooks and the internal wiki"
cc_pair_ids = [
onyx_cc_pair.confluence_wiki.id,
onyx_cc_pair.github_docs.id,
]
}
# A set only two groups may use.
resource "onyx_document_set" "hr_private" {
name = "hr-private"
description = "Handbook and policies"
cc_pair_ids = [onyx_cc_pair.hr_handbook.id]
# Private sets need Enterprise Edition. Group and user ids come from the
# deployment, so read them from the admin panel or pass them in.
is_public = false
groups = [4]
users = [var.hr_lead_user_id]
}
# Onyx rejects a set that holds nothing, so a set built only from federated
# connectors still needs at least one entry there.
#
# `entities` follows the schema of the connector it points at. Slack is the
# only federated source today, and takes the fields below.
resource "onyx_document_set" "support_channels" {
name = "support-channels"
cc_pair_ids = []
federated_connectors = [
{
federated_connector_id = var.slack_federated_connector_id
entities = jsonencode({
search_all_channels = false
channels = ["support", "support-escalations"]
})
},
]
}
cc_pair_ids (Set of String) Ids of the connector-credential pairs in the set, e.g. [onyx_cc_pair.docs.id]. Onyx rejects a set with no pairs and no federated connectors, so this may only be empty when federated_connectors is not.name (String) Document set name. Must be unique across the deployment.description (String) What the set contains, shown in the admin panel.federated_connectors (Attributes Set) Federated connectors searched as part of this set. (see below for nested schema)groups (Set of Number) User group ids that may use the set when it is not public. Enterprise Edition only — Community Edition rejects a set with users or groups.is_public (Boolean) Whether every user can see the set. When false, only the users and groups below can. Onyx defaults new sets to public.timeouts (Block, Optional) (see below for nested schema)users (Set of String) User ids (UUIDs) that may use the set when it is not public. Enterprise Edition only — Community Edition rejects a set with users or groups.id (String) Numeric document set id.is_up_to_date (Boolean) Whether Onyx has finished applying the set to the search index. Reads false while the background sync is pending. Onyx refuses to change or delete a set that is still syncing, so Terraform waits for this before it does either.<a id="nestedatt--federated_connectors"></a>
federated_connectorsRequired:
entities (String) Which entities of that connector to search, as a JSON object.federated_connector_id (String) Id of the federated connector.<a id="nestedblock--timeouts"></a>
timeoutsOptional:
delete (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.update (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).Import is supported using the following syntax:
The terraform import command can be used, for example:
#!/bin/sh
# Import by numeric document set id.
terraform import onyx_document_set.engineering 3