Skip to content

Update to package-spec 3.6.6 - #26

Merged
andrewkroh merged 2 commits into
mainfrom
update-spec-3.6.6
Aug 4, 2026
Merged

Update to package-spec 3.6.6#26
andrewkroh merged 2 commits into
mainfrom
update-spec-3.6.6

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Regenerated types from andrewkroh/package-spec-schema at commit e59fb7f59f51a1408017cf19bd0fe3b14ef2be37, and propagated the 3.6.6 changes through to the SQL schema.

package-spec 3.6.6 changes

Change Effect here
#1213 Top-level group field on integration, input, and content manifests New Manifest.Group field, new packages.group column
#1214 Policy tests may ignore fields New PolicyConfigTests type with IgnoreFields; replaces TestCategoryConfig for the policy key
#1210 Saved search assets in content packages No code change needed; test coverage added
#1196 Remove search type from by-reference validation No effect (validation-only)
#1177, #1178 Mode-aware constructors, source/build validation modes No effect (package-spec tooling only)

group is lifted into the Manifest base type

The spec adds group to all three manifest types, so cmd/generate/augment.yml lists it under the Manifest base type rather than leaving three copies on IntegrationManifest, InputManifest, and ContentManifest. This is what makes it reachable from SQL: the packages table is generated by reflecting over Manifest, so a field on a concrete manifest type would have been invisible to cmd/gensql.

With the field on the base type, regeneration adds the column automatically:

CREATE TABLE IF NOT EXISTS packages (
  ...
  "group" TEXT, -- Identifier of a marketplace group. Packages that share the same value belong to the same group. ...

The column name is quoted because group is a SQLite keyword — cmd/gensql's existing reserved-word list already covers this, so no generator change was required. Absent values are stored as NULL, not ''.

Saved searches in content packages

readKibanaObjects discovers asset types by scanning subdirectories of kibana/, so kibana/search/*.json in a content package already flowed into the kibana_saved_objects table without a code change. Added a test so the behavior is pinned, and documented the asset type in CLAUDE.md.

Policy test ignore_fields

TestConfig.Policy and InputTestConfig.Policy change type from TestCategoryConfig to the new PolicyConfigTests, which adds ignore_fields alongside the existing parallel, skip, and requires keys. This is a breaking API change for callers reading those two fields.

No SQL change: the policy_tests table is built from PolicyTestConfig (the per-case _dev/test/policy/test-*.yml files), which is a different type. The package-level _dev/test/config.yml that PolicyConfigTests belongs to is not read by pkgreader and so is not persisted.

Testing

go test ./... passes. New tests:

  • pkgspec: group unmarshals onto the promoted base type for all three manifest kinds, and is empty when absent; ignore_fields unmarshals on both TestConfig and InputTestConfig.
  • pkgsql: group round-trips to the packages table for integration, input, and content packages, and is NULL when the manifest omits it; a content package's kibana/search/*.json reaches kibana_saved_objects with asset_type = 'search'.

Also verified against the real integrations repo — TestReadAllPackages and TestBuildFleetPackagesDB (472 packages) both pass, and the new column is queryable in the built database. No package uses group yet, as expected for a spec version this new.

github-actions Bot and others added 2 commits August 4, 2026 11:24
Lift the new top-level manifest `group` field into the shared Manifest
base type so it becomes a `group` column on the packages table instead
of living separately on each of the three concrete manifest types.

Add coverage for the remaining 3.6.6 schema changes: saved search assets
in content packages, and `ignore_fields` on policy test configs.
@andrewkroh
andrewkroh merged commit 1297288 into main Aug 4, 2026
3 checks passed
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.

1 participant