Synergex.MetaDataTool
1.0.26267.2049
dotnet tool install --global Synergex.MetaDataTool --version 1.0.26267.2049
dotnet new tool-manifest
dotnet tool install --local Synergex.MetaDataTool --version 1.0.26267.2049
#tool dotnet:?package=Synergex.MetaDataTool&version=1.0.26267.2049
nuke :add-package Synergex.MetaDataTool --version 1.0.26267.2049
Synergex MetaDataTool
MetaDataTool is a command-line utility to generate various kinds of metadata useful when working
with the Streaming Integration Platform, Gantry SQL, and Synergy repositories.
Platforms and Requirements
MetaDataTool is supported on Windows-X64 and Linux-X64 and has the following requirements:
- Synergy licensing and an available runtime license.
- .NET 8, 9 or 10 runtime or SDK.
- Internet access to nuget.org for installation and updates.
Installing and Uninstalling
MetaDataTool can be downloaded and installed using the .NET CLI.
Install MetaDataTool like this:
C:\> dotnet tool install --global Synergex.MetaDataTool
You can invoke the tool using the following command: MetaDataTool
Tool 'synergex.metadatatool' (version '1.0.26203.2352') was successfully installed.
During the installation the MetaDataTool command to your .NET tools path. On Windows,
if the command is not available immediately, close your terminal window and open a new one.
Uninstall MetaDataTool like this:
C:\> dotnet tool uninstall --global Synergex.MetaDataTool
Tool 'synergex.metadatatool' (version '1.0.26203.2352') was successfully uninstalled.
Installed Version and Updates
To show the currently installed version:
C:> metadatatool version
MetaDataTool 1.0.26211.2323 built on 2026-07-30 23:23 UTC
Automatic update checks are enabled by default, and occur at most once per week on startup. You will see a message if a newer version is available. To see help about the update capabilities:
C:\> metadatatool update --help
Usage: metadatatool update [--on|--off|--status] [--help]
--on Enable weekly automatic update checks.
--off Disable weekly automatic update checks.
--status Show whether automatic update checks are enabled.
--help, -h Display this usage information.
Without an argument, checks for a newer version immediately.
To disable or re-enable automatic update checks:
C:\> metadatatool update --off
Automatic update checks disabled.
C:\> metadatatool update --on
Automatic update checks enabled.
C:\> metadatatool update --status
Automatic update checks enabled.
To check for updates immediately, and to download and install the latest version:
C:> metadatatool update
A newer version of Synergex.MetaDataTool is available: 1.0.26204.1519 (installed: 1.0.26203.2352).
Run 'dotnet tool update --global Synergex.MetaDataTool' to install it.
C:\> dotnet tool update --global Synergex.MetaDataTool
Tool 'synergex.metadatatool' was successfully updated from version '1.0.26203.2352' to version '1.0.26204.1519'.
Using MetaDataTool
MetaDataTool can produce the following types of metadata:
- ISAM metadata.
- From SDMS ISAM files (
isamfdlmode). - From OpenVMS FDL files (
isamfilemode).
- From SDMS ISAM files (
- SQL metadata.
- From ISAM and Synergy repository metadata (
sqlmode).
- From ISAM and Synergy repository metadata (
- SDL key definition snippets.
- From ISAM and repository metadata (
keysdlmode).
- From ISAM and repository metadata (
To view help on these modes, run:
C:\> metadatatool help
MetaDataTool is a command-line utility to generate various kinds of metadata
useful when working with the Streaming Integration Platform, Gantry SQL, and
Synergy repositories.
Usage: metadatatool <mode> [<arguments>]
Modes:
addkeys Adds ISAM key definition SDL snippets to SDL schema files.
help Show this information.
isamfdl Generate ISAM metadata from FDL files.
isamfile Generate ISAM metadata from ISAM files.
keysdl Generate ISAM key definition SDL snippets.
sql Generate SQL metadata from repository definitions.
update Check NuGet.org for a newer version of this tool.
version Print version information.
To uninstall: dotnet tool uninstall --global Synergex.MetaDataTool
In isamfdl mode the utility reads one or more OpenVMS FDL files and produces
ISAM metadata files.
In isamfile mode the utility reads one or more SDMS ISAM files and produces
ISAM metadata files.
In keysdl mode the utility reads a combination of ISAM and Synergy repository
metadata and produces Synergy Data Language (SDL) files containing SDL key
definition snippets that can be added to existing structure definitions.
In sql mode the utility reads one or more FILE definitions from a Synergy
repository and produces SQL metadata files.
isamfdl Mode
In this mode the utility reads one or more OpenVMS FDL files and produces ISAM metadata files. To see help for this function, run:
C:\> metadatatool isamfdl --help
Usage: metadatatool isamfdl --input <file> [--output <directory>] [--verbose]
Required arguments:
--input <file>, or -i <file>
Specify the FDL file(s) or an input list file with the files to process.
Optional arguments:
--output <directory>, -o <directory>
Optionally specify where output files are created.
--nokeytruncwarn
Suppress key name trunctation warnings.
--norelwarn
Suppress relative file warnings.
--verbose, -v
Display more messages to the console.
--help, -h
Display this usage information.
Specifying a single FDL file as input creates a single output file with the same
base name and a .JSON extension. Specifying a wildcard or an input file containing
a list of FDL files creates an output file named FILES.JSON.
Input list files may contain blank lines, and comments that begin with #, !,
or ;. Relative paths in input list file are resolved using the list file's directory.
OpenVMS-style logical names can be used to specify the location of input and
output files. For example --input FDL:CUSTOMER.FDL or --output METADATA:.
Note that logical names used in this way must exist in the system environment
as synergy.ini is not used.
To create metadata from a single FDL file, use a command like this:
metadatatool isamfdl --input FDL:CUSTOMER.FDL
The output file CUSTOMER.JSON will be in the current directory.
To create metadata from multiple FDL files, use an input file, for example:
# Input file for producing ISAM Metadata from FDL files
FDL:CUSTOMER.FDL
FDL:INVENTORY.FDL
And use a command like this:
metadatatool isamfdl --input FDLFILES.LIS
The output file FILES.JSON will be in the current directory.
isamfile Mode
In this mode the utility reads one or more SDMS ISAM files and produces ISAM metadata files. To see help for this function, run:
C:\> metadatatool isamfile --help
Usage: metadatatool isamfile --input <file> [--output <directory>]
[--verbose] [--help]
Required arguments:
--input <file>, or -i <file>
Specify either an SDMS ISAM file or an input list file containing the ISAM files to process.
Optional arguments:
--output <directory>, -o <directory>
Optionally specify where output files are created.
--verbose, -v
Display more messages to the console.
--help, -h
Display this usage information.
Specifying a single ISAM file as input creates a single output file with the same
base name and a .JSON extension. Specifying a wildcard, or an input file containing
a list of ISAM files creates an output file named FILES.JSON.
Input list files may contain blank lines, and comments that begin with #, !,
or ;. Relative paths in input list file are resolved using the list file's directory.
OpenVMS-style logical names can be used to specify the location of input and
output files. For example --input DAT:CUSTOMER.ISM or --output METADATA:.
Logical-name prefixes are retained in the `FileSpec` values written to metadata;
for wildcard input, the actual matched file name follows the logical-name prefix.
Note that logical names used in this way must exist in the system environment
as synergy.ini is not used.
To create metadata from a single ISAM file, use a command like this:
metadatatool isamfile --input DAT:INVENTORY.ISM
The output file INVENTORY.JSON will be in the current directory.
To create metadata from multiple ISAM files, use an input file, for example:
# Input file for producing ISAM Metadata from ISAM files
DAT:CUSTOMER.ISM
DAT:INVENTORY.ISM
And use a command like this:
metadatatool isamfdl --input DATAFILES.LIS
The output file FILES.JSON will be in the current directory.
sql Mode
In this mode the utility reads one or more FILE definitions from a Synergy repository and produces SQL metadata files. To see help for this function, run:
C:\> metadatatool sql --help
Usage: metadatatool sql --all | --files <file1> [<file2>...] | --input <file>
[--output <directory>] [--individual] [--format-odbc]
[--alternate-names] [--noarraycolunderscore]
[--repository <main-file> <text-file>]
[--verbose] [--help]
Required arguments (pick one):
--all, -a
Process all file repository definitions.
--files <file1> [<file2>...], -f <file1> [<file2>...]
Process these specific repository file definitions.
--input <file>, -i <file> Read file definition names from a list file
Process repository file defininitions listed in an inmput list file.
Optional arguments:
--output <directory>, -o <directory>
Optionally specify where output files are created.
--individual
Produce an outout file for each file definition.
--format-odbc
Output format: xfodbc (one file per definition, lowercase names)
--alternate-names
Name columns using each field's repository alternate name. This option
can be used independently of --format-odbc. In --format-odbc mode, if
omitted, the SODBC_ODBCNAME environment variable is also honored.
--noarraycolunderscore
Remove the underscore before the trailing array-element index (for example,
_1 becomes 1) when the repository field was an array element.
--repository <main-file> <text-file>, -r <main-file> <text-file>
Specify the Synergy repository files to use.
--verbose, -v
Display additional processing details.
--help, -h
Display this usage information.
A single output file named .table_definitions.json is produced, unless
--individual or --format-odbc are used, both resulting in per-file output.
OpenVMS-style logical names can be used to specify the location of input and
output files. For example --input FILES.LIS or --output METADATA:. Note that
logical names used in this way must exist in the system environment because
synergy.ini is not used.
By default the repository specified by the environment variables RPSMFIL and
RPSTFIL is used, but you can select a specific repository by using the
--repository option.
Examples:
metadatatool sql --files CUSTOMER ORDER -output .\tables
metadatatool sql --all --repository rps\rpsmain.ism rps\rpstext.ism
metadatatool sql --input filelist.txt --output .\tables --individual
keysdl Mode
In this mode the utility reads a combination of ISAM and Synergy repository metadata and produces Synergy Data Language (SDL) files containing SDL key definition snippets that can be added to existing structure definitions. To see help for this function, run:
C:\> metadatatool keysdl --help
Usage: metadatatool keysdl --input <file> [--repository <main-file> <text-file>]
[--output <directory>] [--nooverlayexpand] [--verbose] [--help]
Required arguments:
--input <file>, -i <file>
The ISAM metadata file to read.
Optional arguments:
--repository <main-file> <text-file>, -r <main-file> <text-file>
Specify the Synergy repository files to use.
--output <directory>, -o <directory>
Optionally specify where output files are created.
--nooverlayexpand
Keep an exact overlay-field key match as one SDL segment instead of
expanding it to the overlaid and subsequent fields.
--verbose, -v
Display additional processing details.
--help, -h
Display this usage information.
An input file is required and specifies the ISAM metadata file to read. The file
may contain either a single or array of FileMapping objects, as produced by the
'isamfdl' or 'isamfile' commands, or it can be a SIP MasterConfig.json file
with an array of FileMapping objects in the IsamFileMapping.Mappings property.
By default the repository specified by the environment variables RPSMFIL and
RPSTFIL is used, but you can select a specific repository by using the
--repository option.
OpenVMS-style logical names can be used to specify the location of input and
output files. For example --input FILES.JSON or --output METADATA:. Note that
logical names must exist in the system environment as synergy.ini is not used.
addkeys Mode
This mode adds SDL key-definition snippets generated by keysdl to existing SDL schema files.
It supports a single schema containing all structures or a directory containing one
str-*.sdl schema file per structure.
C:\> metadatatool addkeys --help
Usage: metadatatool addkeys --schemamode <single|individual> --schema <path>
[--snippetdir <directory>] [--clean] [--replace] [--backup]
[--verbose] [--help]
Required arguments:
--schemamode <single|individual>
Use single for one schema file containing all structures, or individual for a
directory containing one str-*.sdl schema file per structure.
--schema <path>
The SDL schema file in single mode, or the schema directory in individual mode.
Optional arguments:
--snippetdir <directory>
Directory containing str-*.sdl.key-snippet files. Defaults to the schema file's
directory in single mode and to the schema directory in individual mode.
--clean
Trim trailing whitespace, remove comment-only schema lines, and collapse repeated
blank schema lines before adding key definitions.
--replace
Replace existing KEY definitions for a structure instead of skipping that snippet.
--backup
Before changing a schema file, copy its original content to a file with .backup
appended to its name. Existing backup files are overwritten.
--verbose, -v
Display additional processing details.
--help, -h
Display this usage information.
OpenVMS-style logical names can be used for the schema and snippet-directory paths. Updated schema files retain their established LF or CRLF line-ending convention.
Building a Package for Release
To package a new release of MetaDataTool:
Update the
VERSIONfile in the repository root if necessary.Then in Visual Studio:
- Select
Releasemode - Build > Rebuild Solution
- Build > Pack MetaDataTool
- Select
Or run the release packaging script from the repository root:
build\Pack.ps1
Both of these methods create Synergex.MetaDataTool.<version>.nupkg in artifacts\nupkg. The package
version is generated once per package from VERSION and the UTC build time in the format
X.Y.YYDDD.HHMM. For example, VERSION of 1.0 can produce 1.0.26202.2005.
For an already-restored workspace, add -NoRestore to the script.
Before publishing a package to an internal feed, install it from artifacts\nupkg and
run metadatatool version to confirm the package and command work as expected.
License
This project is licensed under the BSD 2-Clause License. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.26267.2049 | 101 | 9/24/2026 |
| 1.0.26245.2131 | 135 | 9/2/2026 |
| 1.0.26226.1548 | 132 | 8/14/2026 |
| 1.0.26226.106 | 131 | 8/14/2026 |
| 1.0.26223.2147 | 127 | 8/11/2026 |
| 1.0.26219.1733 | 130 | 8/7/2026 |
| 1.0.26216.2215 | 126 | 8/4/2026 |
| 1.0.26211.2308 | 155 | 7/30/2026 |
| 1.0.26210.1856 | 135 | 7/29/2026 |
| 1.0.26210.1534 | 128 | 7/29/2026 |
| 1.0.26209.2237 | 129 | 7/28/2026 |
| 1.0.26209.34 | 143 | 7/28/2026 |
| 1.0.26208.2311 | 130 | 7/27/2026 |
| 1.0.26205.2058 | 142 | 7/24/2026 |
| 1.0.26205.100 | 137 | 7/24/2026 |
| 1.0.26205.16 | 129 | 7/24/2026 |
| 1.0.26204.2353 | 131 | 7/23/2026 |
| 1.0.26204.1519 | 123 | 7/23/2026 |
| 1.0.26203.2352 | 135 | 7/22/2026 |