Permifrost

Snowflake の権限を管理する

クイックリンク

Permifrost プロジェクト

PyPI

Permifrost

permifrost ダイアグラム

Permifrost は Snowflake データウェアハウスの権限を管理する Python ツールです。ツールの使用に関する主なドキュメントは、プロジェクトと PyPI で参照できます。

注意事項

✅ Permifrost が行うこと・できること

  • Snowflake のみをサポート
  • Permifrost はロールと権限のみを管理します
  • 設定ファイルに存在しないオブジェクトはエラーになりません
  • 完全なオープンソースパッケージであり、誰でも貢献できます

❌ Permifrost が行わないこと・できないこと

  • オブジェクトの作成や削除は Permifrost では管理しません
    • つまり、roles.yml ファイルからロール全体を削除しても、Snowflake からは削除されません

コントリビュート

開発

以下の手順に従って、仮想環境を作成・準備します。

## 仮想環境を作成する
python -m venv ~/.venv/permifrost

## 仮想環境を有効化する
source ~/.venv/permifrost/bin/activate

## 依存関係をインストールする
pip install -r requirements.txt

## 開発用依存関係を pip3 でインストールする
pip install -e '.[dev]'

変更をコミットしたら、マージリクエストを提出してデフォルトテンプレートを更新してください。

コミュニケーション

  • 追加の質問、貢献、アイデアがあれば、Permifrost プロジェクトで新しい Issue を作成し、必要に応じて @gitlab-data/permifrost_maintainers (プロジェクトのメンテナー) にタグ付けしてください
  • 告知や質問には、Slack チャンネル #tools-permifrost も有効です。

リリースプロセス

リリースプロセスはテンプレート Permifrost のリリースプロセス に記述されており、Permifrost のリリース テンプレートを使用します。実例は リリース 0.15.1 をテンプレートとして参照してください。

私たちは年に少なくとも2回、Permifrost の新バージョンをリリースすることを目標としています。それまでの間は、リリース履歴 を確認してください。

バージョニング

Permifrost はバージョン番号スキームとして セマンティックバージョニング 2.0.0 を使用しています。

ワークフロー

Permifrost はタグを使用してアーティファクトを作成します。新しいタグをリポジトリにプッシュすると、Docker イメージと PyPI パッケージとして公開されます。詳細は リリースガイドライン を参照してください。

以下は Permifrost のコントリビューションと開発のワークフロー全体です。

graph TD

    ISSUE--Tag permifrost maintainers--> VAL
    VAL--permifrost::1 Accepting Merge Requests-->MR
    MR--permifrost::2 In-Progress--> MRD
    MRD--permifrost::3 In-Review-->APR
    APR--Yes-->APR_YES[Adding to chanelog]
    APR--Work needed-->MR
    END((End))
    subgraph Community
        RFC((Request for change))
        RFC--Create an issue-->ISSUE[Issue]
        MR[Merge request]
        MRD[Work is done]
    end
    subgraph Permifost maintainer
        VAL[Validate issue]
        APR{Code is approved?}
        APR_YES--Release-->PyPi[PyPi]
        PyPi--share info about new release-->END
    end