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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file bitsmiths-fura-2.2.3.tar.gz.

File metadata

  • Download URL: bitsmiths-fura-2.2.3.tar.gz
  • Upload date:
  • Size: 175.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for bitsmiths-fura-2.2.3.tar.gz
Algorithm Hash digest
SHA256 14a6a2f6485de27d8cffd6114ceadd1500818b2eff67876fe33609e8c5986c5b
MD5 ab0f2a7ebe1184e3ad71347bb3c25b02
BLAKE2b-256 24e7507a93dd593d0ab6fca1b9d7730435b82386e2d6952a6fdefab6d9e3427b

See more details on using hashes here.

File details

Details for the file bitsmiths_fura-2.2.3-py3-none-any.whl.

File metadata

  • Download URL: bitsmiths_fura-2.2.3-py3-none-any.whl
  • Upload date:
  • Size: 575.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for bitsmiths_fura-2.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 64bba5a166071b4e23ecc40a72ebef4d97c54ebfca624cffc4a1c850b3b04bf4
MD5 409b90ed3d3821525d6604c2a2329cf7
BLAKE2b-256 43a22842b6317137269dc0652456f3eb619e24e1165e78e79f17996d712948a5

See more details on using hashes here.

Supported by

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