Skip to content

docs(security): Option A (uninstall pyarrow) probed and rejected — record why - #229

Merged
brownjuly2003-code merged 1 commit into
mainfrom
docs/p53-option-a-rejected
Jul 20, 2026
Merged

docs(security): Option A (uninstall pyarrow) probed and rejected — record why#229
brownjuly2003-code merged 1 commit into
mainfrom
docs/p53-option-a-rejected

Conversation

@brownjuly2003-code

Copy link
Copy Markdown
Owner

What

Comment-only follow-up to #228. The external-review suggestion "eliminate the last safety ignore by uninstalling unused pyarrow from the Flink image" was probed in the real agentflow-flink-local image before touching any code, and it fails:

pip uninstall -y pyarrow
python -c "import apache_beam"
  File ".../apache_beam/io/__init__.py", line 28: from apache_beam.io.parquetio import *
  File ".../apache_beam/io/parquetio.py", line 161, in _ArrowTableToBeamRows
    def process(self, element) -> Iterator[pa.Table]:
AttributeError: 'NoneType' object has no attribute 'Table'

beam 2.61 soft-imports pyarrow (pa = None on failure) but its parquetio class bodies evaluate pa.Table annotations at import time — so the whole beam package (which the PyFlink harness imports) is unimportable without pyarrow. The record goes into the ignore comment so the idea is not re-opened by a future session or audit.

Probe context: image probes also confirmed the positive claims from the review — submit-side and beam-worker imports succeed with pyarrow present, and the import-attempt trace shows pyarrow is pulled in via apache_beam.io.parquetio, not by any PyFlink DataStream path.

Verification

  • yaml.safe_load OK; tests/unit/test_security_workflow.py passes.

🤖 Generated with Claude Code

…rom the Flink image

Probed 2026-07-21 inside the real agentflow-flink-local image: after
pip uninstall pyarrow, `import apache_beam` itself crashes — beam 2.61
io/__init__ star-imports parquetio, whose class bodies evaluate
`pa.Table` annotations with pa=None (AttributeError). The transitive
dependency is load-bearing at import time even though our DataStream
jobs never use it, so "remove unused pyarrow" is not a viable way to
drop the safety ignore. Comment only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

DORA Metrics

  • Window: last 30 days
  • Branch: main
  • Deployment frequency: 127 total / 29.63 per week
  • Lead time for changes: avg 0.78h / median 0.0h
  • Change failure rate: 76.38% (97/127)
  • MTTR: 20.13h across 5 incident(s)

@brownjuly2003-code
brownjuly2003-code merged commit a33edcb into main Jul 20, 2026
24 checks passed
@brownjuly2003-code
brownjuly2003-code deleted the docs/p53-option-a-rejected branch July 20, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants