Project

General

Profile

Actions

Architecture #23727

open

Group all node related access into one NodeFactRepository

Added by François ARMAND 22 days ago. Updated 10 days ago.

Status:
Pending release
Priority:
N/A
Category:
Architecture - Code maintenance
Target version:
Effort required:
Regression:
No

Description

We want to have all node access (ie: inventory, rudder settings, properties, etc) managed by only one repository.
This will allow to more easely advance on the path for #22672, but also to let us implements global security check on nodes (ACL) without fear that user-facing code does not consistently does cheks.

That will also define a defacto Internal API for node management, and so it must be done in a way that can be easely done with forward/backward compatibility in head.

Moreover, a central repository for both update and select will grantly simplify our cache management invalidation.

We will also take care in that refactoring to simplify to number of different node classes (by adding two more, à la XKCD protocol):
- a NodeFact will group all information, both inventory and rudder setting related, into only one normalized structure. It will be the sum of FullInventory and Node,
- a CoreNodeFact will group all cached information about a node. It will be like NodeInfo today, but with a simpler layout consistent with NodeFact.

Appart the massive internal code change, the observable external storage won't be changed: node will still be saved in LDAP.
Performance must be similar or better than before the change.
Code logic must be simpler.
User facing service and UI should not be modified, so we must be able to build a compatibility layer on top of that new infrastructure.


Subtasks 2 (2 open0 closed)

Rudder plugins - Architecture #23752: Implication of CoreNodeFactRepository to pluginsPending technical reviewVincent MEMBRÉActions
Rudder plugins - Architecture #23753: Implication of CoreNodeFactRepository to plugins-privatePending technical reviewVincent MEMBRÉActions

Related issues 3 (2 open1 closed)

Related to Rudder - Architecture #22672: Remove node information and inventories from LDAPPending technical reviewVincent MEMBRÉActions
Related to Rudder - Bug #20674: when saving processes in inventories, don't fetch them to replace themRejectedNicolas CHARLESActions
Related to Rudder - User story #23796: RBAC for nodes via tenants (view only)NewActions
Actions #1

Updated by François ARMAND 22 days ago

Actions #2

Updated by François ARMAND 22 days ago

  • Description updated (diff)
Actions #3

Updated by François ARMAND 22 days ago

  • Status changed from New to In progress
  • Assignee set to François ARMAND
Actions #4

Updated by François ARMAND 22 days ago

  • Status changed from In progress to Pending technical review
  • Assignee changed from François ARMAND to Vincent MEMBRÉ
  • Pull Request set to https://github.com/Normation/rudder/pull/5167
Actions #5

Updated by François ARMAND 16 days ago

  • Related to Bug #20674: when saving processes in inventories, don't fetch them to replace them added
Actions #6

Updated by François ARMAND 15 days ago

  • Subtask #23752 added
Actions #7

Updated by François ARMAND 15 days ago

  • Subtask #23753 added
Actions #8

Updated by Anonymous 10 days ago

  • Status changed from Pending technical review to Pending release
Actions #9

Updated by Clark ANDRIANASOLO 9 days ago

  • Related to Bug #23778: Hooks for newNodeManager was renamed in rudder config but not in plugins added
Actions #10

Updated by Clark ANDRIANASOLO 9 days ago

  • Related to deleted (Bug #23778: Hooks for newNodeManager was renamed in rudder config but not in plugins)
Actions #11

Updated by François ARMAND 5 days ago

Actions

Also available in: Atom PDF