Skip to main content

The Bitsmiths Function-User-Role-Authenticator Package

Project description

BITSMITHS FURA

Fura stands for Function-User-Role-Authenticator. This is the Bitsmiths common security package. It's main purpose is to create roles, functions for various users in a system and track the access, logins, and provide a way for user to reset and change their details/passwords.

Before we get started, Fura uses the concept of site_id on all if its a relational tables. A Site is a grouping of users and their respective role functions. If you had to store multiple client or product login credentials, but keep them securely separate you do that by creating multiple sites in the database.

The main features that Fura provides are:

  • Site based users, roles and functions.
  • The ability to dynamically added new roles and functions to users on the fly through the database.
  • User login access, auditing of login, log-off, password reset attempts, and more.
  • A way to authenticate user role functions and audit access attempts to various levels.
  • To be combined with mettle-braze so you can use Fura for all your server-side authentication requirements.
  • Send magic urls, password resets correspondence via bitsmiths-loco to users. Currently support email and sms.
  • Provide a method to grant temporary elevated access to users.
  • Provide a way for users to login via temporary tokens, passwords or ssh-keys.

This product has a dependency on:

  • Mettle (bitsmiths-mettle)
  • Bitsmiths Library (bitsmiths-lib)
  • Bitsmiths Auditing (bitsmiths-audit)
  • Bitsmiths Loquacious Correspondence (bitsmiths-loco)

Note that we package the generated Mettle code in this package, which means that the Mettle version required in this module is important.

Tables & Setup

Fura is designed to use a relational database with a schema/namespace of fura in your database. You will need to create this schema manually. It requires several other relational database tables.

The package provides the SQL code to create these tables. There are two ways to access the table creation SQL.

  1. You can run bs-fura -g postgresql at the command line, this will print all the SQL to stdout.
  2. You can import the bs_fura module and get the SQL as shown below:
import bs_fura

print(bs_fura.get_table_sql('postgresql'))

Note! Currently only postgresql SQL is added to the package. If you want us to support another database let us know and we will put it into the development pipeline.

Table Configuration

TODO - Complete this section.

Library Objects

TODO - Complete this section.

Change History

2.2.3

Type Description
New Upgraded jwcrypto to version >= 1.5.0 and catered for their breaking changes

2.2.1

Type Description
New Upgraded to use bitsmiths-mettle version 2.2.3

2.2.0

Type Description
Breaking Upgraded to use bitsmiths-mettle version 2.2.2

2.1.8

Type Description
New Using the new bitsmiths-audit (2.1.6) version that has auto triggers.
New Using the new python fetch method from bitsmiths-mettle (2.1.14)

2.1.7

Type Description
New Implemented the dataclass feature from the latest mettle (2.1.13) version.

2.1.6

Type Description
Bug Applied code generation bug fix from lastest mettle library.

2.1.5

Type Description
Bug Fixed a couplet regression bug. OTP errors will now surface correctly.

2.1.4

Type Description
Bug Fixed the search function that was still using deprecated column names.

2.1.0

Type Description
Breaking Moved the dao import method from util.py to the init.py.
Breaking Pulled in the mettle via PYPI, updated project to cater for new changes in mettle.
New Embedded SQL into the python package.

2..0

Type Description
Breaking Snake cased all columns. Renamed 'audId' to 'modifiedy_by'. Renamed 'tmStamp' to 'tm_stamp'.
Breaking Dropped unused services and role service functionality.
Breaking Removed EmailSmtp class.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bitsmiths-fura-2.2.3.tar.gz (175.6 kB view hashes)

Uploaded Source

Built Distribution

bitsmiths_fura-2.2.3-py3-none-any.whl (575.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page