Does ConfD support the concept of pre-provisioning?

In ConfD, meta-data can be associated with configuration data nodes. The meta-data is stored as attributes on data nodes in the configuration datastore. CDB provides native support of meta-data while external data providers need to explicitly support them.

In particular, it is the inactive meta-data attributes in ConfD that can be used to provide support of pre-provisioning, which is the ability to configure a hardware module before it is plugged into your device. Other meta-data attributes supported by ConfD include annotation and tag which are described in detail in Chapter 8 of the ConfD 6.0 User Guide. In order to make use of the meta-data attributes in ConfD, they (/confdConfig/enableAttributes) need to be enabled in confd.conf.

As explained in section 4 (Meta-Data: inactive) of the Configuration Meta-Data Chapter of the ConfD User Guide:

Any existing, deletable data node can be marked as inactive. This has the same effect 
as deleting the node, except that it is still kept in the configuration data store, marked
as being inactive.

To enable support for inactive nodes, /confdConfig/enableInactive in confd.conf
(see confd.conf(5)) must be set to true. All configuration data providers must
support the inactive attribute.

In the CLI, the command deactivate makes a node inactive, and the command activate
activates an inactive node. See See Section 16.15, “Activate and Deactivate” for details.

In NETCONF, a separate capability is used by the server to announce that it supports
inactive nodes. Clients must use special parameters to tell the server that they
understand the inactive attribute. See Section 15.12, “Inactive Capability” for details.

Inactive nodes are not visible in the CDB API for CDB subscribers. If a node is
inactivated, a CDB subscriber will see the node as being deleted, and when it is
activated, the CDB subscriber will see it as being created.

Inactive nodes are not visible in validation code (see Chapter 9, Semantic validation).
Validation constraints defined in the data model (e.g. max-elements or must) do not
take inactive nodes into account.

Since data providers must support the inactive attribute, all hooks and transforms (see
Chapter 10, Transformations, Hooks, Hidden Data and Symlinks) will see the inactive
nodes being marked as inactive, and must be explicitly coded to handle this attribute.