The Malloy Publisher is a basic semantic model server and web application for exploring Malloy packages. The goals of the Publisher project are:
- Create a local development environment for Malloy data app development.
- Develop & standardize Malloy's package format and serving APIs.
- Activate the Malloy open source community!
The diagram below illustrates the Publisher's basic components: Publisher App, Publisher SDK, and Publisher Server.
The Publisher app allows you to browse packages, their contents, and generate code snippets that can be embedded into a data application. See the screenshots below.
The Publisher app is composed of a set React components. The React components form an SDK that can be embedded in other data applications. The SDK's React components call the Publisher server's APIs to fetch package metadata and query results.
The Publisher server is a simple semantic layer. While its primary purpose currently is to facilitate local data app development, it can easily be bundled with a set of Malloy packages in a docker image in order to serve Malloy models and packages (coming soon). We also imagine running the Publisher in-browser in the future to enable folks to easily share and analyze Malloy packages just about anywhere.
Currently, a Malloy package consists of a set of files in a directory with a publisher.json file. The publisher.json only supports two fields at the moment (name & description). We intend to add more fields as we build out Publisher functionality.
Browse loaded packagesExplore a package's contents
Explore Malloy models and notebooks
To build and run the package server, first load the malloy-samples.
git submodule init
git submodule update
Then build and run the package server:
npm install
npm run build
npm run start
NOTE: Note that the Publisher repository currently points to a fork of the malloy-samples repo. The fork contains minor changes to turn each Malloy sample directory into a package. Once the package format solidifies, we intend to merge the changes into the main malloy-samples repo.
- Developer mode that automatically recompiles models and refreshes the publisher app as you make changes
- Embed Composer's Explore UI to enable ad hoc anslysis of packages via a UI
- Scheduled transform pipelines
- Scheduled report generation
- Dockerfile
- In-browser
- Join our Malloy Slack Community! Use this community to ask questions, meet other Malloy users, and share ideas with one another.
- Use GitHub issues in this Repo to provide feedback, suggest improvements, report bugs, and start new discussions.
Documentation:
- Malloy Language - A quick introduction to the language
- eCommerce Example Analysis - a walkthrough of the basics on an ecommerce dataset (BigQuery public dataset)
- Modeling Walkthrough - introduction to modeling via the Iowa liquor sales public data set (BigQuery public dataset)
- YouTube - Watch demos / walkthroughs of Malloy