Security: dApp footer does not link to security posture docs [SEC-A01] #387
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#387
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Checklist Item
SEC-A01: Define the public security posture for small-TVL launch: capped expectations, unaudited/limited-audit language, admin controls, and known residual risks. Verify: docs page or launch notice exists and is linked from the dApp/footer.
Summary
The security posture content exists across multiple docs files but the dApp footer renders only plain text with no hyperlink to any of them. The verify condition requires a link from the footer and none is present.
What Was Checked
frontend-dapp/src/components/legal/LegalFooterNotice.tsx-- the footer component rendered in Layoutfrontend-dapp/src/utils/constants.ts-- checked for any link constants used in footerdocs/security-model.md-- confirmed security posture content existsdocs/contracts-security-audit.md-- confirmed unaudited language and residual risks existExpected (per checklist)
A docs page or launch notice covering capped expectations, unaudited/limited-audit language, admin controls, and known residual risks must be linked from the dApp footer.
Actual
LegalFooterNotice.tsxrenders a single<p>tag with the NFA short copy and a generic risk statement. No anchor tag or link of any kind is present. The constantDOCS_GITLAB_BASEexists inconstants.tsline 14 pointing to the GitLab docs folder but is not imported or used anywhere in the footer component.Evidence
frontend-dapp/src/components/legal/LegalFooterNotice.tsxlines 3-9: only a<p>with{NFA_SHORT}and static text, no<a>tagfrontend-dapp/src/utils/constants.tsline 14:DOCS_GITLAB_BASEdefined but unused in the footerdocs/security-model.md: audit disclaimer exists ("Contracts have not yet been formally audited...")docs/contracts-security-audit.md: residual risks and trust model existSuggested Fix
Import
DOCS_GITLAB_BASEfromconstants.tsintoLegalFooterNotice.tsxand add a link element pointing todocs/security-model.md(or a consolidated public security page) with label text such as "Security and audit docs". The link should open in a new tab and be visible without scrolling on desktop and mobile layouts.Verification Checklist
Steps to confirm the fix is complete and the checklist item can be marked done.
LegalFooterNotice.tsximportsDOCS_GITLAB_BASEfromconstants.tsLabels
pre-launch~securityCc: @PlasticDigits
mentioned in issue #381
The security posture doc needs to be thorough and explain that security requirements scale with tvl to make cba from attackers negative as product grows.
mentioned in commit
7b423fdea7mentioned in merge request !915
mentioned in commit
6d45b1158cmentioned in commit
13900236ecVerification — SEC-A01 (#387)
Result: PASS (fix already on
mainvia13900236— no verifier MR required)Acceptance criteria
LegalFooterNotice.tsxrendersdata-testid="security-posture-doc-link"→SECURITY_POSTURE_DOC_URL(…/docs/security-posture.md) withtarget="_blank"/rel="noopener noreferrer"constants.tsSECURITY_POSTURE_DOC_URLbuilt fromDOCS_GITLAB_BASEinfrontend-dapp/src/utils/constants.tsdocs/security-posture.md— launch table, audit status, admin-controls table, residual-risks sectiondocs/security-posture.md§ “Security requirements scale with TVL” — USD bands ($0–$1M / $1M–$25M / $25M+) and attack-economics rationalecurl -sI→ HTTP 200 forhttps://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/blob/main/docs/security-posture.mdnpm test -- --run src/components/legal/__tests__/LegalFooterNotice.test.tsx— 3/3 passed/swap@ 1280×720: link visible. Mobile @ iPhone 13 viewport: link visible in bothapp-mobile-legal-strip(in-viewport) andfooter(strict-mode duplicate — feature present twice on narrow layouts)docs/security-model.md,docs/frontend.md,docs/README.md,skills/AGENTS_FRONTEND_TRUST_BOUNDARIES.mdreferencesecurity-posture.md+ SEC-A01python3 scripts/check_user_incident_faq_docs.pyCommands run
Closing as verified on
main.mentioned in issue #663