Skeema Cloud Linter is a SaaS tool, meaning there’s nothing to install locally; the software runs entirely in the cloud and interfaces with GitHub’s API. It does not connect to your actual databases.
git push, Cloud Linter executes logic similar to
skeema diff --lint, comparing the new commit’s
CREATE statements to either the merge-base (if part of a pull request) or the previous commit (non-PR). Linter annotations are displayed inline on pull request pages, making code review easy. Diff output DDL and linter annotation summaries are rendered into a pull request comment. All of this happens automatically, typically in under one minute of
git push, without any need to configure YAML in a CI system or GitHub Action.
- Cloud Linter is not a stand-alone product! In order for Skeema Cloud Linter to operate, you must already be using Skeema CLI.
- Cloud Linter cannot be used with arbitrary non-Skeema-related repositories, such as
mysqldumpoutput or Ruby on Rails
- Do NOT add Skeema Cloud Linter to all repositories in your GitHub account. If you ignore this message, your access to Cloud Linter will be permanently blocked.
To enable Skeema Cloud Linter, simply authorize the GitHub integration on the desired account and repos. In order to enable Cloud Linter on an organization account, you will need administrative privileges for the org on GitHub.
Skeema Cloud Linter is completely free for individual GitHub accounts, and all repos owned by individual accounts.
Organization GitHub accounts receive a 14-day free trial, with no contact information or payment information required upfront. If your organization would like to continue using it after the trial, you may subscribe for only $59 USD/month, or save 8% with a $649 USD annual plan. One subscription covers your entire organization, with unlimited users and unlimited repositories.
When installing Cloud Linter on a GitHub account, you will be prompted for which repositories to enable the application on. By default, GitHub’s UI will select all of your repos; do not leave this default enabled. You will need to select just your Skeema-related repo(s) instead.
Cloud Linter can be enabled on public or private repos. There are no restrictions on repo privacy, regardless of account type. We generally recommend use of private repos for most schema management use-cases.
You can choose to have a single repo dedicated to Skeema files, or multiple dedicated repos (e.g. one per database cluster or company org), or a “mono-repo” which places Skeema files in a subdirectory alongside application code. However, you should not enable Cloud Linter on repos that are completely unrelated to Skeema.
One consideration for mono-repos: if the repo is excessively large or takes too long to clone, Cloud Linter will reject it with an error. In this case, please use a separate repo for storing your schema definitions.
Skeema Cloud Linter’s dashboard shows recent commits and lint result summaries for your repos. For organizations, admin users may also manage billing settings. Authentication is based on GitHub OAuth login.
Cloud Linter is intended to operate on repos managed by the
skeema CLI. Within a repo, all configuration is managed by
.skeema files in the same way as the CLI. A few notes specific to Cloud Linter:
In terms of environments, Cloud Linter will use the values configured for the
productionenvironment, since this tends to be the strictest configuration regarding linter options.
Some options have no effect on Cloud Linter. For example, since Cloud Linter does not connect to your actual database servers, connectivity options such as host, port, socket, user, and password are all ignored. Similarly, all options relating to workspaces, Docker, and temp-schema are ignored.
The flavor option is particularly important in Cloud Linter, as it determines which database version and vendor’s dialect to use when examining your schema repo.
Anything set in connect-options will be respected. This can be useful for overriding database settings at the session level.