Package: bitsmiths-fura
BITSMITHS FURAFurastands forFunction-User-Role-Authenticator. This is the Bitsmiths common security package. It's main purpose is to
create roles, functions for varioususersin a system and track the access, logins, and provide a way for user to reset and
change their details/passwords.Before we get started,Furauses the concept ofsite_idon all if its a relational tables. ASiteis 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 multiplesitesin the database.The main features thatFuraprovides 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 withmettle-brazeso you can useFurafor all your server-side authentication requirements.Sendmagic urls,password resetscorrespondence viabitsmiths-locoto users. Currently supportemailandsms.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)Notethat we package the generated Mettle code in this package, which means that the Mettle version required in this module is important.Tables & SetupFurais designed to use a relational database with a schema/namespace offurain 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.You can runbs-fura -g postgresqlat the command line, this will print all the SQL tostdout.You can import the bs_fura module and get the SQL as shown below:importbs_furaprint(bs_fura.get_table_sql('postgresql'))Note!Currently onlypostgresqlSQL 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 ConfigurationTODO - Complete this section.Library ObjectsTODO - Complete this section.Change History2.2.3TypeDescriptionNewUpgradedjwcryptoto version >= 1.5.0 and catered for their breaking changes2.2.1TypeDescriptionNewUpgraded to usebitsmiths-mettleversion 2.2.32.2.0TypeDescriptionBreakingUpgraded to usebitsmiths-mettleversion 2.2.22.1.8TypeDescriptionNewUsing the new bitsmiths-audit (2.1.6) version that has auto triggers.NewUsing the new python fetch method from bitsmiths-mettle (2.1.14)2.1.7TypeDescriptionNewImplemented the dataclass feature from the latest mettle (2.1.13) version.2.1.6TypeDescriptionBugApplied code generation bug fix from lastest mettle library.2.1.5TypeDescriptionBugFixed a couplet regression bug. OTP errors will now surface correctly.2.1.4TypeDescriptionBugFixed the search function that was still using deprecated column names.2.1.0TypeDescriptionBreakingMoved the dao import method from util.py to theinit.py.BreakingPulled in the mettle via PYPI, updated project to cater for new changes in mettle.NewEmbedded SQL into the python package.2..0TypeDescriptionBreakingSnake cased all columns. Renamed 'audId' to 'modifiedy_by'. Renamed 'tmStamp' to 'tm_stamp'.BreakingDropped unused services and role service functionality.BreakingRemoved EmailSmtp class.