これは、英国政府と議会の請願サービスのコードベースです。
Dockerデスクトップを使用して、迅速にセットアップを取得することをお勧めします。 Dockerを使用しない場合は、Ruby(3.2+)、ノード(20+)、およびPostgreSQL(16+)がインストールされる必要があります。
docker compose run --rm web rake db:setup
docker compose run --rm web rake epets:countries:load
docker compose run --rm web rails runner 'FetchRegionsJob.perform_now'
docker compose run --rm web rails runner 'FetchConstituenciesJob.perform_now'
docker compose run --rm web rails runner 'FetchDepartmentsJob.perform_now'
docker compose run --rm web rails runner 'Site.enable_signature_counts!(interval: 10)'
docker compose up
サービスが開始されたら、フロントエンド、バックエンド、および送信されるメールにアクセスできます。
テストを実行する前に、データベースを準備する必要があります。
docker compose run --rm web rake db:test:prepare
次のコマンドを使用して、完全なテストスイートを実行できます。
docker compose run --rm web rake
個々の仕様は、次のコマンドを使用して実行できます。
docker compose run --rm web rspec spec/models/parliament_spec.rb
同様に、個々のキュウリ機能は、次のコマンドを使用して実行できます。
docker compose run --rm web cucumber features/suzie_views_a_petition.feature
節度ポータルは、Omniauth GEMを使用して認証され、戦略に関する軽いラッパーを実装して、2つ以上のSAML IDプロバイダーなどの戦略の複数の構成をサポートできるようにします。
config/sso.yml
生産に使用されるべきではないローカル開発のためのDeveloper
戦略の構成があります。ファイルのテスト構成は、典型的なSAML IDPがどのように構成されるかを示しています。
Omniauth auth_info
ハッシュに返される必要がある4つの重要な属性があります。これらはfirst_name
、 last_name
、 email
、 groups
です。 email
属性はユーザーのUIDとして機能し、 groups
属性は、割り当てられた役割を制御します。
構成属性は次のとおりです。
名前
これは必須属性であり、一意でなければなりません。また、OmniauthのコールバックURLの一部を形成するため、URLでの使用に適している必要があります。
戦略
これは、アイデンティティプロバイダーの親クラスとして使用するOmniauth戦略です。
ドメイン
このIDプロバイダーで使用する電子メールドメインのリスト、例えば
domains :
- " example.com "
役割
groups
のマッピングは、割り当てられた役割への属性を制御します。
roles :
sysadmin :
- " System Administrators "
moderator :
- " Petition Moderators "
reviewer :
- " Petition Reviewers "
3つのロールのいずれかのデフォルトは空のセットです。そのため、IDプロバイダーが役割の1つにのみ使用されている場合、他を構成する必要はありません。
config
これは、Omniauth戦略に渡される構成であり、戦略によってサポートされている文書化されたオプションのハッシュである必要があります。