Skip to content

latest

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jan 07:26
· 0 commits to 2e447dbcded5c3d8e37a1b20ac5d70afd85ccaf9 since this release
Pass tenting ACL names from Buck2 to TPX via labels

Summary:
High level doc ( part 1 ): [RFC] ACL Metadata Propagation for Code Tenting by Michael Julio
Post: Code Tenting: Propagating ACL Tenting Metadata via Buck in Buck2 Dev by michaeljulio

Thread tenting ACL names through the Buck2 test pipeline and pass them to TPX
as labels on the ExternalRunnerSpec. This enables TPX to detect tented tests
and apply appropriate security policies.

**Details**
- In `interpret_targets`, query `TentingAclProvider` from DICE global data for
  each package path to get ACL names
- Thread `tenting_acl_names: Option<Vec<String>>` through all test pipeline
  stages: `ConfigureTarget` → `BuildTarget` → `TestTarget` → `dispatch()`
- In `build_external_runner_spec()`, JSON-encode all ACL names into a single
  label `tpx_test_config::tenting_acl_names=["<acl>", ...]` on the
  `ExternalRunnerSpec`. A single JSON-array label (not one label per ACL) is
  used because TPX reads the value via a single prefix match
  (`find_value_after_prefix`) and every downstream layer stores/decodes it as a
  JSON-encoded array string
- ACL names keep their full `REPO_REGION:` identity prefix exactly as returned
  by EdenFS `getAttributesFromFilesV2` in `AclEntry.repoRegionAcl`
- For targets discovered via the `tests` attribute, `tenting_acl_names` is set
  to `None` (they inherit their own package's tenting status independently)

Reviewed By: JakobDegen, lironmosh

Differential Revision: D104053830

fbshipit-source-id: 21665cef9e6548878e16f4d7e9373647f7ffc28f