A set of utilities, with command-line launchers, for working with BIRD (Banks' Integrated Reporting Dictionary) metadata. This project provides tools for loading metadata from CSV files, generating database DDL statements, and exporting metadata to JSON format.
- Load metadata from BIRD CSV files into any JDBC-compatible database
- Generate DDL statements for creating database tables from BIRD cube definitions
- Export to JSON with hierarchical structure based on configurable aggregates
- Supports multiple SQL dialects (PostgreSQL, MySQL, Oracle, H2, etc.)
- Flexible identifier naming (upper/lower/PascalCase) with length constraints
- Java 17 or higher
- Maven 3.6 or higher (for building)
Build the project and create an executable uber JAR:
mvn clean packageThis creates target/garuda-bird-tools-1.0-0.jar with all dependencies bundled.
The project provides three main tools that can be run from the command line.
Loads BIRD metadata from CSV files into any JDBC-compatible database.
java -cp target/garuda-bird-tools-1.0-0.jar \
cli.com.xenithal.garuda.birdtools.LoadMetadataToDatabase \
-c /path/to/csvs \
-d "jdbc:postgresql://localhost:5432/bird" \
-U username -P passwordOptions:
-u, --zip-url <url>- Download ZIP containing metadata CSVs-z, --zip-path <path>- Local ZIP file with metadata CSVs-c, --csv-path <path>- Local directory with metadata CSVs-d, --database-url <url>- JDBC database connection URL-U, --username <user>- Database username-P, --password <pass>- Database password-s, --schema <schema>- Database schema-uc, -lc, -ic- Case conversion (upper/lower/initial)
Generates SQL DDL statements for creating database tables from BIRD cube definitions.
java -cp target/garuda-bird-tools-1.0-0.jar \
cli.com.xenithal.garuda.birdtools.GenerateCreateTableDdl \
-c /path/to/csvs \
-o output.sql \
-s POSTGRESOptions:
-u, --zip-url <url>- Download ZIP containing metadata CSVs-z, --zip-path <path>- Local ZIP file with metadata CSVs-c, --csv-path <path>- Local directory with metadata CSVs-o, --output-file <file>- Output DDL file (default: STDOUT)-m, --maintenance-agency <id>- Filter by maintenance agency (e.g., SDD)-f, --framework <id>- Filter by framework (e.g., BIRD)-cu, --cube <id>- Filter to single cube ID-s, --sql-dialect <dialect>- SQL dialect: DEFAULT, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE-l, --identifier-max-length <n>- Maximum identifier length (default: 60)-uc, -lc, -ic- Case conversion (upper/lower/initial)
Exports BIRD metadata to hierarchical JSON files based on configurable aggregates.
java -cp target/garuda-bird-tools-1.0-0.jar \
cli.com.xenithal.garuda.birdtools.OutputMetadataToJson \
-c /path/to/csvs \
-d /path/to/output/jsonOptions:
-u, --zip-url <url>- Download ZIP containing metadata CSVs-z, --zip-path <path>- Local ZIP file with metadata CSVs-c, --csv-path <path>- Local directory with metadata CSVs-d, --output-path <path>- Output directory for JSON files
BIRD (Banks' Integrated Reporting Dictionary) is a standard for banking regulatory reporting maintained by the European Central Bank. This tool helps transform BIRD metadata into usable database schemas and data structures.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit issues or pull requests.