Skip to content

v3.0.0-alpha.4

Compare
Choose a tag to compare
@LeChatP LeChatP released this 24 May 23:01
· 156 commits to main since this release
9f02350

This new release adds many new features! With its comprehensive documentation and many unit tests.

Merges

Replacing XML to JSON file format

  • The project now embraces JSON for configuration management, offering improved flexibility.
  • After careful consideration among JSON, YAML, or KDL, JSON emerged as the preferred choice.
    1. chsr is simple enough to avoid direct file manipulation
    2. JSON is the industry's most used and interoperable.
    3. Discouraging text editing because rootasrole.json should be immutable, as using chattr is annoying
    4. Other formats allow commenting but these would be deleted each time using chsr tool.

Adding new configuration file for storage configuration

As RootAsRole implements the RBAC model, it would be interesting to plan the database integration, such as LDAP for user assignment and SQLite/PostgreSQL/MySQL for role and task definitions.

Rewrite of chsr tool

  • The chsr tool has undergone a complete rewrite, eliminating the Text User Interface (TUI).
  • Concerns regarding usability inefficiency drove the decision to move away from TUI.
  • The new Command-Line Interface (CLI) offers enhanced usability and efficiency in managing roles.
    • Inspired by tools like ip or nftables, the new CLI syntax is intuitive and user-friendly.
    • We developed a grammar pest to enable syntax management like these tools, as clap-rs couldn't suffice.
  • Closing #41

Plugin-based features

RBAC-0 features are now core program features, with the implementation of hierarchical roles moved to an 'API'. This facilitates the addition of new features for the separation of duties.

Other new features

  • The sr command now operates in a pty, mitigating tty hijacking risks.
  • password is now erased from memory after use.
  • Enhanced options include:
    • Multiple environment variable management policies for flexibility in handling environment variables.
    • Inheritable option management allows administrators to define general and specific options with inheritance control.
    • Timeout is now an option per-task, providing granular control over task execution.
  • Fixes #40

Full Changelog: v3.0.0-alpha.3...v3.0.0-alpha.4