Skip to content

Repository files navigation

Mitti Exporter

Maintainability Test Coverage

Mitti Exporter is available as both a command-line tool (CLI) and a desktop application (UI). You can use it to export your data — inspections, templates, schedules, actions, and more — to multiple formats for business intelligence tools or record keeping. Available to all Premium and Enterprise customers.

For instructions on downloading and running Mitti Exporter, as well as interpreting the data output, please check out our Mitti Exporter documentation.

The Python version of Mitti Exporter is no longer being maintained. We recommend downloading this latest version for faster exporting and additional data sets.


Repository Structure

This is a monorepo containing both the CLI and the desktop UI:

.
├── cli/          # Go CLI tool (module: github.com/SafetyCulture/mitti-exporter)
├── ui/           # Wails v2 desktop app (React + Tailwind + shadcn/ui)
│   └── frontend/ # React frontend (pnpm)
├── go.work       # Go workspace linking cli/ and ui/
└── .github/      # CI workflows

The UI references the CLI as a local module via Go workspaces, so both always build against the same code.

Development

Prerequisites

CLI

cd cli

# Unit tests
GOWORK=off go test ./...

# Build
GOWORK=off go build ./cmd/mitti-exporter

Use GOWORK=off for CLI-only work to avoid pulling in Wails/CGO dependencies.

When adding new columns in methods that implement Columns() []string, make sure they are added at the end to preserve CSV column order in export files.

UI

cd ui

# Dev server with hot reload
wails dev

# Production build
wails build

Integration Tests

SQL database integration tests require running databases:

cd cli
docker-compose up -d
make integration-tests

To run with local volume:

mkdir -p ~/docker-volume/mssql
docker-compose -f docker-compose-local-volume.yml up sqlserver

Releasing

Releases are triggered by pushing a version tag. The CI pipeline builds CLI binaries (linux/amd64, darwin/amd64, darwin/arm64, windows/amd64) and desktop app bundles (macOS universal, Windows amd64), then publishes them as GitHub Release assets.

  1. Checkout main and pull the latest changes.
  2. Create a tag following Semantic Versioning: git tag -a v3.1.0 -m "Release v3.1.0" Acceptable formats: v3.1.0, v3.1.0-alpha.1, v3.1.0-beta.1
  3. Push the tag: git push origin v3.1.0
  4. Review and publish the draft release.

About

SafetyCulture Exporter Tool for exporting your data to MSSQL, PowerBI and your other BI tools

Resources

Security policy

Stars

19 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages