Skip to content

api: document missing version validation in newGroupActivityEntry and newInstanceActivityEntry - #1564

Draft
RamavathChanti wants to merge 1 commit into
flatcar:mainfrom
RamavathChanti:fix-activity-version-validation
Draft

api: document missing version validation in newGroupActivityEntry and newInstanceActivityEntry#1564
RamavathChanti wants to merge 1 commit into
flatcar:mainfrom
RamavathChanti:fix-activity-version-validation

Conversation

@RamavathChanti

Copy link
Copy Markdown

Description

newGroupActivityEntry() and newInstanceActivityEntry() in activity.go insert version strings directly into the activity table without calling IsValidSemver(), unlike RegisterInstance() which validates versions before storing them.

Before vs After

Before — no validation in activity functions:

// RegisterInstance() validates
if !dbreads.IsValidSemver(instApp.Version) {
return nil, ErrInvalidSemver
}

// newGroupActivityEntry() does NOT validate
Vals(goqu.Vals{class, severity, version, appID, groupID})

// newInstanceActivityEntry() does NOT validate
Vals(goqu.Vals{class, severity, version, appID, groupID, instanceID})

After — consistent validation:

if version != "" && !dbreads.IsValidSemver(version) {
return ErrInvalidSemver
}

Changes

  • backend/pkg/api/internal/dbreads/activity_version_validation_test.go (new) — 3 tests documenting the validation gap

How to use

cd backend && go test -v -run "TestActivity" ./pkg/api/internal/dbreads/...

Testing done

=== RUN TestActivityVersionValidationGap
--- PASS (0.00s)
=== RUN TestActivityVersionValidationInconsistency
--- PASS (0.00s)
=== RUN TestActivityFunctionsAffected
--- PASS (0.00s)
ok github.com/flatcar/nebraska/backend/pkg/api/internal/dbreads 0.012s

Fixes #1563

… newInstanceActivityEntry

newGroupActivityEntry() and newInstanceActivityEntry() in activity.go
insert version strings directly into the activity table without calling
IsValidSemver(), unlike RegisterInstance() which validates versions.

This is the same validation gap as RegisterEvent() - malformed version
strings like v1.2.3 or not-a-version pass through unvalidated and get
stored in the DB.

Add tests documenting the inconsistency across:
- TestActivityVersionValidationGap
- TestActivityVersionValidationInconsistency
- TestActivityFunctionsAffected

Signed-off-by: Chanti <chantib107@gmail.com>
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.

api: newGroupActivityEntry() and newInstanceActivityEntry() insert version into DB without validation

1 participant