{"id":22353758,"url":"https://github.com/phobos/phobos_checkpoint_ui","last_synced_at":"2025-03-26T12:27:56.904Z","repository":{"id":56887984,"uuid":"69906224","full_name":"phobos/phobos_checkpoint_ui","owner":"phobos","description":"Phobos Checkpoint UI is a GUI for phobos checkpoint API","archived":false,"fork":false,"pushed_at":"2019-01-10T15:13:41.000Z","size":2982,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-04T11:16:39.378Z","etag":null,"topics":["kafka","kafka-events","phobos","ruby"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/phobos_checkpoint_ui","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phobos.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-03T20:03:22.000Z","updated_at":"2019-01-10T15:13:43.000Z","dependencies_parsed_at":"2022-08-20T15:20:54.255Z","dependency_job_id":null,"html_url":"https://github.com/phobos/phobos_checkpoint_ui","commit_stats":null,"previous_names":["klarna/phobos_checkpoint_ui"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phobos%2Fphobos_checkpoint_ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phobos%2Fphobos_checkpoint_ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phobos%2Fphobos_checkpoint_ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phobos%2Fphobos_checkpoint_ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phobos","download_url":"https://codeload.github.com/phobos/phobos_checkpoint_ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245652755,"owners_count":20650550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kafka","kafka-events","phobos","ruby"],"created_at":"2024-12-04T13:09:47.169Z","updated_at":"2025-03-26T12:27:56.886Z","avatar_url":"https://github.com/phobos.png","language":"JavaScript","readme":"[![Build Status](https://travis-ci.com/phobos/phobos_checkpoint_ui.svg?branch=master)](https://travis-ci.com/phobos/phobos_checkpoint_ui)\n\n# Phobos Checkpoint UI\n\nPhobos Checkpoint UI is a GUI for phobos checkpoint API. It is compatible with [Phobos DB Checkpoint](https://github.com/klarna/phobos_db_checkpoint)\n\n![Events list](https://github.com/klarna/phobos_checkpoint_ui/raw/master/screenshot1.png)\n![Event overview](https://github.com/klarna/phobos_checkpoint_ui/raw/master/screenshot2.png)\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'phobos_checkpoint_ui'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install phobos_checkpoint_ui\n\n## Usage\n\n1.  Add `require 'phobos_checkpoint_ui/tasks'` to your **Rakefile**\n\n2.  Run `rake phobos_checkpoint_ui:copy_assets`, this will copy the precompile assets to `./public`\n\n3.  Create/update `config.ru` and add:\n\n```ruby\nrequire 'phobos_checkpoint_ui'\n\n# ...\n# \u003c keep the previous configurations \u003e\n# ...\n\n# run PhobosDBCheckpoint::EventsAPI\nrun PhobosCheckpointUI::App.new(api_app: PhobosDBCheckpoint::EventsAPI)\n```\n\nIt is possible to configure some aspects of the app, `App.new` accepts a hash with options to be delivered to the front-end. The front-end is prepared to receive the following options:\n\n- `logo` - Path of image to be used as a logo (can be something inside `/public`)\n- `title` - App title\n- `env_label` - Special label display the environment\n\nExample:\n\n```ruby\nrun PhobosCheckpointUI::App.new(\n  api_app: PhobosDBCheckpoint::EventsAPI,\n  configs: {\n    logo: '/assets/logo.png',\n    title: 'Checkpoint',\n    env_label: 'production'\n  })\n```\n\n### SAML\n\nIf configured, Checkpoint UI will support authentication and authorisation with IDP (SAML).\n\n#### Configuration\n\n```yml\nsession_secret: the_session_secret\nsaml_config:\n  issuer: the_issuer\n  idp_cert_fingerprint: the_idp_cert_fingerprint\n  assertion_consumer_service_url: the_assertion_consumer_service_url\n  idp_sso_target_url: the_idp_sso_target_url\n  idp_logout_url: the_idp_logout_url\n```\n\nIf `saml_config` is not provided the Events API will be open for anyone to access.\n\nPhobosCheckpointUI ships with a default SamlHandler that does not handle authorization, being authenticated is enough. It also sets the same default username for all users. If you want to tweak this, you can customize it (see below)\n\n#### Customizing the SAML handler\n\nIf authenticating with IDP is not enough, and you want more control over authorization, you can customize this with your own SamlHandler.\n\nExample:\n\n```ruby\nclass MySamlHandler \u003c PhobosCheckpointUI::SamlHandler\n  def self.authorized?(user_json)\n    # my custom check\n  end\nend\n\nrun PhobosCheckpointUI::App.new(\n  api_app: PhobosDBCheckpoint::EventsAPI,\n  saml_handler: MySamlHandler\n)\n```\n\nIf `saml_handler` is not specified, `PhobosCheckpointUI::SamlHandler` will be used instead which returns some default values without looking at IDP payload.\n\n### Logging\n\nLogging middleware can be injected via the `logging_middleware` option.\n\nExample:\n\n```ruby\nrun PhobosCheckpointUI::App.new(\n  api_app: PhobosDBCheckpoint::EventsAPI,\n  logger_middleware: MyLoggerMiddleware\n)\n```\n\nThe logger middleware will inject itself as rack middleware. If not specified, `Rack::NullLogger` will be used (no logging).\n\n## Development\n\nThe front-end is written with `React` and `Redux`, ensure that you have `nodejs` version \u003e= 6.3 installed.\n\n```sh\ncd frontend\nnpm install\nnpm run test:unit #or npm run test:unit:watch to continuosly run the tests\n```\n\nRun `rake spec` to run the ruby tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/klarna/phobos_checkpoint_ui.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphobos%2Fphobos_checkpoint_ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphobos%2Fphobos_checkpoint_ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphobos%2Fphobos_checkpoint_ui/lists"}