Skip to content

Releases: abaxoth0/SentinelRBAC

v1.3.0

Choose a tag to compare

@abaxoth0 abaxoth0 released this 28 Nov 14:24
ea45b24

v1.3.0

This minor update is focused on fixing known issues rather on introducing some new features. Not all of them were fixed and also some new issues were found in process. So one or couple next minor updates will also be focused on this.

Changes

  • Fix Spelling and Grammar Errors
  • Fix Broken Error Message in validate.go
  • Remove os.Exit(1) from common.go
  • Standardize Error Handling
  • Fix Performance Issues
    • Fix the slice allocation bug in normalizeResources()
    • Optimize Data Structures:
      • Replace slice lookups with map lookups
      • Improve memory efficiency
  • Deduplicate Validation Logic
  • Improve Architecture
    • Add more interfaces
    • Reduce coupling
    • Improve testability
    • Better separation of concerns

v1.2.0

Choose a tag to compare

@abaxoth0 abaxoth0 released this 06 Aug 20:33
6e9f06a

Added Action Gate Policy;
Added Authorization Context;
Added possibility to define actions, entities and resources in configuration file;
Authorization flow rework;
Other minor changes;

v1.1.0

Choose a tag to compare

@abaxoth0 abaxoth0 released this 23 May 11:04

Schema now has default roles.

Added LoadSchema() which will load Schema from the specified configuration file.

Validation and normalization fixes;

Validation is now performed via functions, instead of structs methods as it was before.

File loading rework;

All functions and methods was optimized to create as little garbage as possible, by working with copies of a structs, not pointers to them. This will reduce pressure on GC. Due this some functions and methods now may work slowly, for example loading and normalization, but it's not a big problem, cuz they are supposed to be called only once, mostly used functions and methods still use pointers receivers, so overall performance is supposed to be better.

v1.0.9-1

Choose a tag to compare

@abaxoth0 abaxoth0 released this 20 May 15:27

Host.MergePermissions() renamed into Host.MergeRoles();

Permissions type changed from int to uint16;

v1.0.9

Choose a tag to compare

@abaxoth0 abaxoth0 released this 20 May 11:40

In v1.0.8 Host.MergePermissions() worked incorrectly, it didn't save
permissions in original host, leaving changes only on a copy;

Most of constructor functions now returns copies of an objects instead
of pointers to them, this will reduce pressure on GC. Pointers remain
only where it's necessary (e.g. for Resource);

Authorize() now a Resource method;

Host.DefaultRolesNames renamed to Host.DefaultRoles, also its type
changed from []string to []Role;

Some docs fixes.

v1.0.8

Choose a tag to compare

@abaxoth0 abaxoth0 released this 16 May 20:06

Permissions now represented via bitmask;

Logs replaced via debugLog(), which show logs only when Debug is true;

Host:

  • Added "raw" structs which are used to parse configuration file;
  • DefaultRoles renamed into Roles;
  • Origin role renamed into default;
  • Now can contain multiple default roles;

Now permissions of all roles are merged before authorization. Previously
they all was checked one-by-one. This behaviour lead to the error when
for example:
User has one role which allow Read and another which allow Update, but
action requires both Read and Update permissions at once, so user won't
be authorized for desired action.
In this case technically user has both this permissions, but they are in
different roles and that was not handled properly before.

v1.0.7

Choose a tag to compare

@abaxoth0 abaxoth0 released this 30 Dec 16:46

Authorization rework. Actions and function that used for authorization now are not bound to entities. Can create multiple instances of a Host.

v1.0.6.1

Choose a tag to compare

@abaxoth0 abaxoth0 released this 09 Dec 11:56
Structs visibility changed to public