Skip to content

malcolmarnold/garuda-bird-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Garuda Bird Tools

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.

Features

  • 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

Prerequisites

  • Java 17 or higher
  • Maven 3.6 or higher (for building)

Building

Build the project and create an executable uber JAR:

mvn clean package

This creates target/garuda-bird-tools-1.0-0.jar with all dependencies bundled.

Tools

The project provides three main tools that can be run from the command line.

1. Load Metadata to Database

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 password

Options:

  • -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)

2. Generate CREATE TABLE DDL

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 POSTGRES

Options:

  • -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)

3. Export Metadata to JSON

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/json

Options:

  • -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

About BIRD

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.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

About

A set of utilities, with command-line launchers, for working with BIRD (Banks' Integrated Reporting Dictionary) metadata.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages