1 unstable release

0.2.0 Oct 23, 2024

#134 in Authentication

Download history 140/week @ 2024-10-21

140 downloads per month
Used in bios-iam

Apache-2.0

750KB
11K SLoC

WIP

BIOS(Business Informatization OS)

中文 English

For computers, BIOS (Basic Input/Output System) is the foundation for loading and running the operating system. It abstracts hardware access and serves as a critical link between hardware and software. For enterprises, we also hope to have a similar system that provides basic capabilities for upper-level business applications and abstracts the access of mainstream cloud services, providing a consistent access interface.

In a nutshell, BIOS is a stable, secure, lightweight, and extensible technology platform that empowers enterprises to achieve digital transformation.

Ability Layering

architecture

The vast majority of BIOS functionalities are written in the Rust language and rely on the Tardis(https://github.com/ideal-world/tardis) framework maintained by the same group of contributors.

From the bottom to the top, BIOS is divided into five layers: RBUM, SPI, Middlewares, Supports, and FaaS.

  • RBUM (Resource-Based Unified Model) is a unified model based on resources. The model provides upper-level operations with unified basic operations, unified credential management, and unified access control.

  • SPI (Service Provider Interface) provides abstractions for commonly used basic operations to adapt to mainstream middleware/cloud services. For example, we provide the full-text search operation, which adapts to PostgreSql and ElasticSearch and can be further extended to other implementations.

  • Middlewares provides some commonly used middleware. Different from the SPI layer, these middleware do not consider adaptability, thus gaining greater flexibility and freedom, and can be used to build some special features. For example, we provide the event service, which is based on the Websocket protocol and implements event penetration between the front and back ends and between the back and back ends.

  • Supports is used to provide some complex domain services. Different from the Middleware layer, these supporting services aggregate the capabilities of SPI and Middleware to form more complex business-oriented services.

  • FaaS is used to implement the construction of general business applications with simple front-end technologies.

All of these layers are optional. They are libraries and do not contain executable services. We use a special aggregation service layer to aggregate different capabilities into the required services. In actual use, we can select the required capabilities to build customized services that meet our own needs.

In terms of gateway selection, we support the self-developed gateway named SpaceGate (https://github.com/ideal-world/spacegate) by default to better integrate with BIOS.

Directory Structure

|-- backend
  |-- basic                 Basic operation module, including common logic of RBUM and SPI
  |-- spi                   SPI layer
  |-- middlewares           Middleware layer
  |-- supports              Support layer
  |-- faas                  FaaS layer
  |-- services              Aggregation service layer
  |-- gateways              Gateway adaptation layer
    |-- spacegate-plugins   Customized plugins for SpaceGate gateway
|-- frontend
  |-- console               Console front-end
  |-- sdks                  Interface encapsulation and operation client
|-- examples                Usage examples
|-- docs                    Documentation

Dependencies

~51–76MB
~1.5M SLoC