License key discovery tables and configuration

reference brazil Updated Sep 10, 2026 4 min read license-key-discovery-tables.md
Raw file servicenow.com

License key discovery uses configuration tables to define file-matching rules and extraction parsers, and stores results in dedicated tables for reporting and reconciliation.

Configuration tables

Two configuration tables work together to define and execute the license key discovery framework.

sn_acc_vis_content_license_file_config

Defines which files to treat as license files and which parser to invoke when a file is found.

Column name Type Description
display_name String Unique name identifying the rule.
file_name String File name or partial name to match.
file_name_condition Choice How to match file_name: exact_match (default), starts_with, ends_with, contains.
file_extension String Optional file extension to further narrow the match (no leading dot before the extension).
parser Reference Reference to sn_acc_vis_content_license_parser record that processes matched files.
platform Choice Operating system(s) where the rule applies: all (default), windows, linux, mac.
order Integer Priority when multiple rules could match the same file (default 100; lower values win).
active Boolean Indicates whether the rule is currently in use (default = true).

sn_acc_vis_content_license_parser

Holds the extraction logic for one license file format. A single parser can be referenced by multiple file-matching rules.

Column name Type Description
parser_name String Unique name identifying the parser.
parsing_script Script Server-side JavaScript that reads file content and sets answer to an array of extracted results.
sample_input String Representative file content used with Test Parser action.
sample_output String Expected extraction result for sample_input, used to validate the parser.
active Boolean Whether the parser is currently in use (default = true).

Results tables

Once a file has been scanned and parsed, the results flow through three tables, each holding a distinct stage of the outcome.

sn_acc_vis_content_license_file_content

The raw, per-file result of scanning one file on one computer — captured regardless of whether a product match was later found.

Column name Type Description
ci Reference Reference to cmdb_ci_computer — the computer where the file was found.
license_file_config Reference Reference to sn_acc_vis_content_license_file_config — the rule that matched this file.
file_path String Folder path where the file was found.
file_name String Name of the file.
file_size Long Integer Size of the file in bytes.
file_version String File version, if available.
discovered_product_name String Product name extracted by the parser.
discovered_vendor String Vendor name extracted by the parser.
discovered_license_key String License key extracted by the parser.
discovered_expiry_date Date Expiry date extracted by the parser, if present in the file.
discovered_file_content Long Text Raw file content, stored only when parsing fails (for troubleshooting).
scan_id String Identifier of the scan that produced this result.
last_scanned Date When this file was last scanned.
parse_status Choice parsed or parse_failed.
absent Boolean Set to true when the file is no longer found in a later scan (default = false).

sn_acc_vis_content_license_keys

The final, resolved license key tied to a computer and a recognized software product — the table which is reported on.

Column name Type Description
ci Reference Reference to cmdb_ci — the computer the license key belongs to.
product Reference Reference to samp_sw_product — the matched catalog product.
user Reference Reference to sys_user — user associated with the CI, if resolved.
license_file_config Reference Reference to sn_acc_vis_content_license_file_config — the rule that led to this result (file-method only).
license_file_path String Path of the source license file (file-method only).
license_key String The resolved license key.
last_scanned Date When this license key was last confirmed.
absent Boolean Set to true when no longer found in a later scan (default = false).

Note: Columns license_key_config and resolved_registry_path also exist on this table but are populated only by the older registry-based discovery method.

sn_acc_vis_content_license_file_unresolved

A holding area for discovered product names that could not be automatically matched to the software catalog.

Column name Type Description
discovered_product_name String Product name as extracted by the parser (unmatched).
discovered_vendor String Vendor name as extracted by the parser.
parser Reference Reference to sn_acc_vis_content_license_parser — the parser that produced this discovery.
normalised_product_name Reference Reference to samp_sw_product — set by the customer to manually map this discovery to a real catalog product.

Framework constraints

The following constraints are built into the framework:

  • File read permission — The account under which the ACC agent service runs must have read permission on the folders and files being scanned. This is an operating-system-level requirement. If the agent encounters a file or folder it cannot read, it logs a permission error for that item and continues scanning.
  • File size limit — License file content is capped at 1 MB. Files larger than this limit are skipped and not read for license key extraction.

These constraints are intentional guardrails and cannot be changed through configuration.

Product reconciliation

Once a parser successfully extracts a product name from a license file, the discovery is reconciled against the software catalog (samp_sw_product). If a confident match is found, a final record is created in sn_acc_vis_content_license_keys. If no confident match is possible, the discovery is placed in sn_acc_vis_content_license_file_unresolved for manual review and mapping.

Manual mappings are performed only once per unique product name. After a customer sets the normalised_product_name field, all future scans reporting the same discovered product name resolve automatically with no repeated manual effort.

System properties and policies

Component Role
System property sn_acc_vis_content.enable_license_key_discovery Master on/off switch (default = false). Must be true for license key data from either discovery method to be processed and stored.
Policy File Based Discovery Policy - License Key Instructs the agent during its regular file-scanning activity to watch for files matching an active License File Configuration rule. Depends on the File Based Discovery Background Policy also being active.
Check definition File Based Discovery - License Key Defines the concrete agent command executed (files.rb --compact --no-delta, scoped to the license-key scan identifier) and its timeout (10 minutes)

Parent Topic:Agent Client Collector for Visibility Content reference

Keywords license key discoveryconfiguration tablesresults tablesfile-based discovery
Search documentation
Search document titles and file paths on the brazil branch