All Projects → killbill → killbill-admin-ui

killbill / killbill-admin-ui

Licence: MIT license
Kill Bill Administrative UI engine

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects
Less
1899 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to killbill-admin-ui

killbill-stripe-plugin
Kill Bill plugin for Stripe
Stars: ✭ 16 (-58.97%)
Mutual labels:  payments, billing, subscriptions, killbill
killbill-client-java
Java client library for Kill Bill
Stars: ✭ 30 (-23.08%)
Mutual labels:  payments, billing, subscriptions, killbill
kbcli
GO client library for Kill Bill
Stars: ✭ 22 (-43.59%)
Mutual labels:  payments, billing, subscriptions, killbill
Killbill
Open-Source Subscription Billing & Payments Platform
Stars: ✭ 2,396 (+6043.59%)
Mutual labels:  payments, billing, subscriptions, killbill
Dj Stripe
Django + Stripe Made Easy
Stars: ✭ 1,022 (+2520.51%)
Mutual labels:  payments, billing, subscriptions
drf-stripe-subscription
An out-of-box Django REST framework solution for payment and subscription management using Stripe.
Stars: ✭ 42 (+7.69%)
Mutual labels:  payments, billing
Boxbilling
BoxBilling - Open source billing and client management software
Stars: ✭ 372 (+853.85%)
Mutual labels:  payments, billing
Gringotts
A complete payment library for Elixir and Phoenix Framework
Stars: ✭ 396 (+915.38%)
Mutual labels:  payments, billing
Pinax Stripe
a payments Django app for Stripe
Stars: ✭ 650 (+1566.67%)
Mutual labels:  payments, subscriptions
development
An Enterprise-ready Cloud Services Management Software
Stars: ✭ 38 (-2.56%)
Mutual labels:  billing, subscriptions
Akaunting
Free and Online Accounting Software
Stars: ✭ 4,599 (+11692.31%)
Mutual labels:  payments, billing
Nestjs Braintree
A module for braintree reoccurring payments and transactions 💳
Stars: ✭ 62 (+58.97%)
Mutual labels:  payments, subscriptions
RxBilling
Rx wrapper for Billing Library with connection management
Stars: ✭ 79 (+102.56%)
Mutual labels:  billing, subscriptions
Jetstream Cashier Billing Portal
Jetstream Cashier Billing Portal is a simple scaffolding billing portal to manage subscriptions, invoices and payment methods, built on top of Jetstream & Cashier Register.
Stars: ✭ 45 (+15.38%)
Mutual labels:  billing, subscriptions
Invoiceneko
An Open Sourced Invoice System developed for anyone who needs to generate out an invoice and manage clients
Stars: ✭ 204 (+423.08%)
Mutual labels:  payments, billing
Ledgersmb
Repository for the LedgerSMB project -- web app for accounting & ERP
Stars: ✭ 222 (+469.23%)
Mutual labels:  payments, billing
cashier-paystack
Cashier provides an expressive, fluent interface to Paystack's subscription billing services.
Stars: ✭ 44 (+12.82%)
Mutual labels:  billing, subscriptions
Google-IAP
Android Library for easing Google Play Billing to your apps with support for Subscriptions, In-App Purchases and Consumables with a beautiful sample app.
Stars: ✭ 129 (+230.77%)
Mutual labels:  billing, subscriptions
Stripe Billing Typographic
⚡️Typographic is a webfont service (and demo) built with Stripe Billing.
Stars: ✭ 186 (+376.92%)
Mutual labels:  payments, billing
subscribie
Collect recurring payments online - subscription payments collection automation
Stars: ✭ 36 (-7.69%)
Mutual labels:  payments, billing

Getting started

Kaui core mountable engine. For Kaui the UI, see killbill-admin-ui-standalone.

Kill Bill compatibility

Kaui version Kill Bill version
0.14.y 0.16.z
0.15.y 0.18.z (Rails 4)
0.16.y 0.18.z (Rails 5)
1.x.y 0.20.z (Rails 5)
2.x.y 0.22.z (Rails 5)

Dependencies

Ruby 2.4.2+ or JRuby 9.1.14.0+ required.

Running Kaui locally

Note: use Ruby, not JRuby, for running the app locally.

You can run Kaui locally by using the test/dummy app provided:

export RAILS_ENV=development DB_HOST=127.0.0.1 DB_USER=root DB_PASSWORD=root DB_PORT=3306
bundle install
bundle exec rails db:migrate
bundle exec rails s

The Kill Bill URL can be configured through the KILLBILL_URL environment variable, e.g.

KILLBILL_URL='http://killbill.acme:8080'

Mounting Kaui into your own Rails app

The Kaui gem comes with a kaui script to mount it in your existing Rails app.

Kaui expects the container app to define the current_user method, which returns the name of the logged-in user. This is used by Kill Bill for auditing purposes.

Migrations can be copied over to your app via:

bundle exec rake kaui:install:migrations

Finally, a Kill Bill server needs to be running for Kaui to fetch its information (see the Configuration section below). The default login credentials are admin/password. Users, Credentials, Roles and Permissions are passed through to Kill Bill. It uses Basic Auth by default, but the backend is pluggable (LDAP, ActiveDirectory, etc.).

Running tests

rails t

Note: functional and integration tests require an instance of Kill Bill to test against.

Development

Working with the kaui script

In order to generate the Rubygems-friendly kaui script, you need to build the gem and install it locally.

First, build the gem in the pkg directory:

rake build

Then, install and run it from a local directory:

mkdir foo
gem install pkg/kaui-*.gem -i foo
GEM_PATH=$PWD/foo:$GEM_PATH ./foo/bin/kaui /path/to/rails/app --path=$PWD --skip-bundle

Alternatively, you can run the kaui script under bin by setting your loadpath correctly:

ruby -Ilib bin/kaui /path/to/rails/app --path=$PWD --skip-bundle

Multi-Tenancy

KAUI 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.

Admin User Roles

In multi-tenancy mode, there are two kinds of users:

  • 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, ...)
  • The per-tenant admin user, which operates just a given tenant

Those 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. The new permissions have been created:

  • TENANT_CAN_VIEW
  • TENANT_CAN_CREATE
  • OVERDUE_CAN_UPLOAD
  • CATALOG_CAN_UPLOAD

The enforcement in KAUI is based on the CanCan gem.

Multi-tenancy screens

KAUI has been enriched with new models and new screens to manage the multi-tenancy, and those are available for the multi-tenant admin user:

  • 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.
  • 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].