Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spyglasshq/spyglass-cli

Access management as code.
https://github.com/spyglasshq/spyglass-cli

access-control access-management data-engineering database-security iam security snowflake spyglass

Last synced: 3 months ago
JSON representation

Access management as code.

Awesome Lists containing this project

README

        

![spyglass-ascii](https://github.com/spyglasshq/spyglass-cli/assets/121976108/78e0a2d4-5462-48bb-a13c-9e8f6430da66)

![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/spyglasshq/spyglass-cli/test.yml?branch=master) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/spyglasshq/spyglass-cli) ![GitHub](https://img.shields.io/github/license/spyglasshq/spyglass-cli) ![GitHub milestone](https://img.shields.io/github/milestones/progress-percent/spyglasshq/spyglass-cli/3)

Manage your Snowflake access controls as code.

---

🚣‍♂️ _**Before Spyglass**_: Permissions are managed manually across scripts, snowsight worksheets, and one-off requests.

Screen Shot 2023-03-20 at 11 47 17 AM

🚤 _**After Spyglass**_: Permissions are managed centrally in git and automatically synced to Snowflake.

Screen Shot 2023-03-20 at 11 38 02 AM

## Overview

For a detailed explanation, see our [Introducing Snowflake Access-as-Code](https://blog.spyglass.software/p/introducing-snowflake-access-as-code) post.

Basic usage of this tool looks like:

```
1. Import your current Snowflake objects/roles to YAML.

┌───────────┐ spyglass import / sync ┌──────────┐
│ Snowflake │ ──────────────────────────────► │ YAML │
└───────────┘ └──────────┘

2. Manage them as code.

┌───────────┐ make changes ┌──────────┐
│ │ ──────────────────────────────► │ │
│ Data User │ spyglass verify │ YAML │
│ │ ──────────────────────────────► │ │
└───────────┘ └──────────┘

3. Automatically sync objects/roles between your Git repo and Snowflake.

┌───────────┐ spyglass apply ┌──────────┐
│ Snowflake │ ◄────────────────────────────── │ YAML │
└───────────┘ └──────────┘
```

## Getting Started

Install the CLI using `npm`:

```
sudo npm install -g spyglass-cli@latest
```

## Basic Usage

See [How do I set up the CLI? #43](https://github.com/spyglasshq/spyglass-cli/discussions/43).

See the [Reference Documentation](https://spyglasshq.github.io/spyglass-cli/) for details on the configuration.

## CI/CD Usage

See [How do I set up github actions / workflows? #42](https://github.com/spyglasshq/spyglass-cli/discussions/42).

## Query Usage

For getting insight into "who can access what?", see [Announcing Queries (alpha) #45](https://github.com/spyglasshq/spyglass-cli/discussions/45).

## Getting Help and Contributing

We love working with the community, here's a few ways to get involved:

1. [Discussions](https://github.com/spyglasshq/spyglass-cli/discussions) - For FAQs, Q&A, feature requests, ideas, announcements, and sharing your use cases.
2. [Issues](https://github.com/spyglasshq/spyglass-cli/issues) - For bug reports and concrete work items.
3. [Email](mailto:[email protected]) - If all else fails, or if you'd just like to chat, let us know at [email protected].
4. [Slack](mailto:[email protected]) - For early partners, we're working on Slack for real time feedback and support. If you're interested, reach out to [email protected].

## Security

For submitting security issues, see [SECURITY.md](./SECURITY.md)

For our security guidance to users, see [Security Best Practices #96](https://github.com/spyglasshq/spyglass-cli/discussions/96)

## Usage Analytics

We constantly improve this software, but we need your help! By default, we log **anonymous analytics** such as: commands invoked, errors, and software versions. We never log any personally-identifiable user information.

To opt out, you can run `spyglass config:set disableAnalytics true`. See https://github.com/spyglasshq/spyglass-cli/issues/9 and [logging.ts](./src/lib/logging.ts) for more information.

## Roadmap

As of Q1 '23, Spyglass has full support for **Snowflake**. Support for other analytics databases (BigQuery, Databricks, Redshift, Oracle, etc.) is planned to follow.

Check out the [Milestones](https://github.com/spyglasshq/spyglass-cli/milestones) page to track further progress.