Skip to content

[SECURITY][FLEET DOCUMENTS] Store vehicle uploads privately with authorized retrieval #189

Closed

Description

@Obiajulu-gif

Summary

Administrator vehicle uploads are written to publicly accessible blob URLs and the raw blob response is returned. Registration, insurance, inspection, or ownership images can therefore bypass application authorization.

Repository evidence

  • app/api/upload/route.ts:180-187 writes vehicle files with access: "public" and returns the blob object.
  • The KYC path in the same route uses an application-controlled document record, showing the missing boundary for fleet files.

Scope

  • Use private storage references and a fleet-document download route with role/resource authorization.
  • Persist ownership, purpose, checksum, retention, and access audit metadata.

Acceptance criteria

  • Direct public URLs cannot retrieve fleet documents.
  • Authorized reads are no-store and auditable.

Tests

  • Cover admin upload/read, unauthorized access, expired/deleted records, and guessed storage keys.

Non-goals

  • Changing vehicle image presentation for deliberately public marketing assets.

Activity

  1. JONAH-6 commented on Aug 25, 2026

    @JONAH-6

    I have experience with TypeScript and secure file storage. I’ll move fleet documents to private storage, add authorized retrieval with audit metadata, and test admin access, unauthorized requests, expired/deleted records, and guessed storage keys.

  2. grantfox-oss commented on Aug 26, 2026

    @grantfox-oss

    🦊 GrantFox — @JONAH-6 has been assigned to this issue as part of the Third Campaign campaign!

    Next steps:

    1. Open a Pull Request referencing this issue (e.g., Closes #189)
    2. Your PR will be reviewed by the Chainmove maintainers

    Good luck! Track your progress on GrantFox.

  3. grantfox-oss commented on Aug 28, 2026

    @grantfox-oss

    🎉 This issue has been marked as completed on GrantFox as part of the Third Campaign campaign!

    @JONAH-6's PR #228 was approved and merged by @Obiajulu-gif.

    🏆 @JONAH-6: You earned 35 FoxPoints for this contribution! Your current tier: Explorer (672 total points). Track your full progress on GrantFox.

    👏 Great work, @JONAH-6! Keep contributing to Chainmove.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third Campaign

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions