{"id":13558239,"url":"https://github.com/killbill/killbill-admin-ui","last_synced_at":"2025-04-05T12:07:41.325Z","repository":{"id":5157267,"uuid":"6325726","full_name":"killbill/killbill-admin-ui","owner":"killbill","description":"Kill Bill Administrative UI engine","archived":false,"fork":false,"pushed_at":"2025-02-21T19:42:43.000Z","size":3728,"stargazers_count":55,"open_issues_count":30,"forks_count":61,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T11:09:54.338Z","etag":null,"topics":["billing","killbill","payments","subscriptions"],"latest_commit_sha":null,"homepage":"https://killbill.io","language":"Ruby","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/killbill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["killbill"]}},"created_at":"2012-10-21T21:22:34.000Z","updated_at":"2025-03-27T12:09:50.000Z","dependencies_parsed_at":"2023-02-17T22:55:20.447Z","dependency_job_id":"ea75bbe8-3f31-4eaa-a90c-63173f4bd627","html_url":"https://github.com/killbill/killbill-admin-ui","commit_stats":null,"previous_names":[],"tags_count":94,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killbill%2Fkillbill-admin-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killbill%2Fkillbill-admin-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killbill%2Fkillbill-admin-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killbill%2Fkillbill-admin-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/killbill","download_url":"https://codeload.github.com/killbill/killbill-admin-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332609,"owners_count":20921853,"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":["billing","killbill","payments","subscriptions"],"created_at":"2024-08-01T12:04:49.870Z","updated_at":"2025-04-05T12:07:41.307Z","avatar_url":"https://github.com/killbill.png","language":"Ruby","readme":"Getting started\n===============\n\nKaui core mountable engine. For Kaui the UI, see [killbill-admin-ui-standalone](https://github.com/killbill/killbill-admin-ui-standalone).\n\nKill Bill compatibility\n-----------------------\n\n| Kaui version | Kill Bill version |\n| -----------: |------------------:|\n| 0.14.y       |            0.16.z |\n| 0.15.y       |  0.18.z (Rails 4) |\n| 0.16.y       |  0.18.z (Rails 5) |\n| 1.x.y        |  0.20.z (Rails 5) |\n| 2.1.y        |  0.22.z (Rails 5) |\n| 2.2.y        |  0.24.z (Rails 6) |\n| 3.x.y        |  0.24.z (Rails 7) |\n\nDependencies\n------------\n\nRuby 3.2.2+ or JRuby 9.4.2.0+ required.\n\nRunning Kaui locally\n---------------------\n\nNote: use Ruby, not JRuby, for running the app locally.\n\nYou can run Kaui locally by using the test/dummy app provided:\n\n```\nexport RAILS_ENV=development DB_HOST=127.0.0.1 DB_USER=root DB_PASSWORD=root DB_PORT=3306\nbundle install\nbundle exec rails db:migrate\nbundle exec rails s\n```\n\nThe Kill Bill URL can be configured through the `KILLBILL_URL` environment variable, e.g.\n\n```\nKILLBILL_URL='http://killbill.acme:8080'\n```\n\nMounting Kaui into your own Rails app\n-------------------------------------\n\nThe Kaui gem comes with a `kaui` script to mount it in your existing Rails app.\n\nKaui expects the container app to define the \u003ctt\u003ecurrent_user\u003c/tt\u003e method, which returns the\nname of the logged-in user. This is used by Kill Bill for auditing purposes.\n\nMigrations can be copied over to your app via:\n\n```\nbundle exec rake kaui:install:migrations\n```\n\nFinally, a Kill Bill server needs to be running for Kaui to fetch its information (see the Configuration section below).\nThe default login credentials are admin/password.  Users, Credentials, Roles and Permissions are\npassed through to Kill Bill. It uses Basic Auth by default, but the backend is pluggable (LDAP,\nActiveDirectory, etc.).\n\n\nRunning tests\n-------------\n\n```\nrails t\n```\n\nNote: functional and integration tests require an instance of Kill Bill to test against.\n\nDevelopment\n===========\n\nWorking with the kaui script\n----------------------------\n\nIn order to generate the Rubygems-friendly `kaui` script, you need to build the gem\nand install it locally.\n\nFirst, build the gem in the `pkg` directory:\n\n    rake build\n\nThen, install and run it from a local directory:\n\n    mkdir foo\n    gem install pkg/kaui-*.gem -i foo\n    GEM_PATH=$PWD/foo:$GEM_PATH ./foo/bin/kaui /path/to/rails/app --path=$PWD --skip-bundle\n\nAlternatively, you can run the `kaui` script under `bin` by setting your loadpath correctly:\n\n    ruby -Ilib bin/kaui /path/to/rails/app --path=$PWD --skip-bundle\n\n\nMulti-Tenancy\n=============\n\nKAUI has been enhanced to support multi-tenancy. In order to benefit from that mode, remove the properties `KillBillClient.api_key` and `KillBillClient.api_secret` from the config/initializers directory.\n\nAdmin User Roles\n----------------\n\nIn multi-tenancy mode, there are two kinds of users:\n\n* The **multi-tenant admin** user, which has the rights to configure the tenant information (creation of tenant, add allowed users for specific tenant, upload catalog, ...)\n* The **per-tenant admin** user, which operates just a given tenant\n\nThose roles and permissions are defined the same way other permissions are defined: The Shiro configuration (static config file, LDAP) in Kill Bill, will determine for each user its associated role, and the roles will have a set of available [permissions](https://github.com/killbill/killbill-api/blob/master/src/main/java/org/killbill/billing/security/Permission.java). The new permissions have been created:\n\n* TENANT_CAN_VIEW\n* TENANT_CAN_CREATE\n* OVERDUE_CAN_UPLOAD\n* CATALOG_CAN_UPLOAD\n\nThe [enforcement in KAUI](https://github.com/killbill/killbill-admin-ui/blob/master/app/models/kaui/ability.rb) is based on the CanCan gem.\n\nMulti-tenancy screens\n---------------------\n\nKAUI has been enriched with new models and new screens to manage the multi-tenancy, and those are available for the multi-tenant admin user:\n\n* The `kaui_tenants` table will list the available tenants (from KAUI point of view); note that this is redundant with the Kill Bill `tenants` table, and the reason is that the `api_secret` needs to be maintained in KAUI as well, so listing the existing tenants from Kill Bill would not work since that key is encrypted and cannot be returned. A new screen mounted on `/admin_tenants` allows to configure new tenants. The view allows to create the new tenant in Kill Bill or simply updates the local KAUI config if the tenant already exists.\n* The `kaui_allowed_users` table along with the join table `kaui_allowed_user_tenants` will list all the users in the system that can access specific tenants. The join table is required since a given user could access multiple tenants (e.g multi-tenant admin user), and at the same time many users could access the same tenant. A new screen mounted on `/admin_allowed_users` allows to configure the set of allowed users associated to specific tenants.\n\n\n\n","funding_links":["https://github.com/sponsors/killbill"],"categories":["Ruby","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkillbill%2Fkillbill-admin-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkillbill%2Fkillbill-admin-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkillbill%2Fkillbill-admin-ui/lists"}