Optional metadata provider override. Callers should set
instance.Provider = providerToUse before invoking governance operations
in multi-provider contexts. Falls back to the global default provider when unset.
StaticInstanceSoft-delete a tag by setting its Status to 'Deleted'.
The tag record is preserved in the database for audit history.
The tag to soft-delete
The user performing the operation
Deprecate a tag by setting its Status to 'Deprecated'.
Deprecated tags are preserved in the system but excluded from active tag resolution.
The tag to deprecate
The user performing the operation
Write a row to MJ:Tag Suggestions. Idempotency is the caller's
responsibility — this method always inserts. Callers that need
deduplication (e.g., Tag Health emitters) should query first.
The Global Object Store is a place to store global objects that need to be shared across the application. Depending on the execution environment, this could be the window object in a browser, or the global object in a node environment, or something else in other contexts. The key here is that in some cases static variables are not truly shared because it is possible that a given class might have copies of its code in multiple paths in a deployed application. This approach ensures that no matter how many code copies might exist, there is only one instance of the object in question by using the Global Object Store.
Merge one or more source tags into a single surviving tag.
This operation:
ContentItemTag.TagID references from each source tag to the surviving tagTaggedItem records from each source tag to the surviving tagStatus to 'Merged' and MergedIntoTagID to the surviving tag'Merged'Array of tag IDs to merge away (these become inactive)
The tag ID that absorbs all references
The user performing the operation
Summary of items moved during the merge
Move a tag to a new parent in the taxonomy hierarchy.
The tag to move
The new parent tag ID, or null for root-level
The user performing the operation
Approve a pending suggestion. When the reviewer chose merge-into-existing,
re-points any existing free-text ContentItemTag rows whose Tag text
matches ProposedName to the merge target. When create-new, creates a
fresh MJ:Tag (inheriting parent scope when applicable) and re-points
the same set of free-text rows to the new tag.
Returns the resolved tag (merge target or newly-created tag).
Reactivate a previously deprecated or deleted tag by setting its Status back to 'Active'.
The tag to reactivate
The user performing the operation
Rename a tag, updating both Name and DisplayName.
The tag to rename
The new name (applied to both Name and DisplayName)
The user performing the operation
Split a tag by creating new child tags under the original tag's parent.
This operation creates new sibling tags alongside the original tag. It does NOT automatically reassign items from the original tag to the new children; that must be done separately (e.g., via MergeTags or manual reassignment).
The tag being split
Array of names for the new child tags to create
The user performing the operation
Array of newly created tag entities
Walk the proposed parent's ancestor chain and decide whether the
autotagger may auto-create a new child under it. Returns the first
blocking reason found (so reviewer messages can be precise) or ok:true.
Caller responsibilities:
weight is the classifier confidence; BelowMinWeight is checked
against the proposed parent's MinWeight.proposedParentID == null means "create a root" — only the global
IsFrozen / IsLeaf governance applies.TagEngine.Config() ran so
GetTagByID returns the up-to-date entity instances.Protected StaticgetReturns the singleton instance of the class. If the instance does not exist, it is created and stored in the Global Object Store. If className is provided it will be used as part of the key in the Global Object Store, otherwise the actual class name will be used. NOTE: the class name used by default is the lowest level of the object hierarchy, so if you have a class that extends another class, the lowest level class name will be used.
OptionalclassName: string
Engine that manages tag lifecycle operations (merge, split, move, rename, deprecate, reactivate, delete) with full audit logging to the MJ: Tag Audit Logs entity.
All operations are server-side and require a
contextUserfor proper security context. Every mutation creates an audit log entry for traceability.Example