How bloodcounts/flaaa works
FLA³ combines Flower federated-learning orchestration with XACML-compatible authorization and access-filtered aggregation. The documented workflow is that SuperNodes communicate with SuperLink, which consults governance controls at federation lifecycle points; eligible results are filtered during aggregation. The PDP accepts decision requests, evaluates policy, and records audit data. The tree and excerpts support the PDP request path, custom Fleet checks, and FedMAP filtering, while the broader examples and several integration details are documented but not present in the supplied tree or sampled source; uncertain wiring is therefore omitted.
Main entry points: pdp.js XACML evaluator · start_custom_superlink.py Custom SuperLink · policy_enforcement_point.py Policy enforcement · decision.js Decision endpoint
Components 18
Federation orchestration
- Custom SuperLink
superlink/start_custom_superlink.py - Fleet servicer
superlink/custom_fleet/custom_fleet_servicer.py
Policy governance
- Policy enforcement
superlink/custom_fleet/policy_enforcement_point.py - Policy client
pdp/utils/policyInformationPoint.js - PDP service
pdp/app.js - Decision endpoint
pdp/routes/decision.js - Decision audit
pdp/utils/decisionLogger.js - Audit database
pdp/utils/database.js
Policy evaluation
- Policy files
- XACML evaluator
pdp/xacml/pdp.js - Policy finder
pdp/xacml/finder/policyFinder.js - Request context
pdp/xacml/ctx/inputParser.js - Expression evaluation
pdp/xacml/cond/expressionHandler.js
Aggregation
- Filtered strategies
aggregation-strategies/strategies - FedMAP filter
aggregation-strategies/strategies/fedmap_grid_with_filter.py - FedAvg filter
aggregation-strategies/strategies/fedavg_grid_with_filter.py
Other components
- SuperNode
- Federated training
Connections 20
- Custom SuperLink → Fleet servicer: registers
- SuperNode → Fleet servicer: sends Fleet RPCs
- Fleet servicer → Policy enforcement: checks task approval
- Policy enforcement → Policy client: requests authorization
- Policy client → PDP service: submits decision request
- PDP service → Decision endpoint: mounts route
- Decision endpoint → XACML evaluator: evaluates request
- XACML evaluator → Request context: parses context
- XACML evaluator → Policy finder: finds applicable policy
- Policy finder → Policy files: loads policy
- XACML evaluator → Expression evaluation: evaluates expressions
- Decision endpoint → Decision audit: records decision
- Decision audit → Audit database: writes records
- Federated training → Custom SuperLink: starts federated run
- Custom SuperLink → Filtered strategies: uses aggregation strategy
- Filtered strategies → FedMAP filter: includes
- Filtered strategies → FedAvg filter: includes
- FedMAP filter → Policy enforcement: checks participant eligibility
- FedAvg filter → Policy enforcement: checks participant eligibility
- SuperNode → Custom SuperLink: submits results