Skip to content

fromJsonSchemaDocument: import the not keyword #10044

Open

Description

@filipfalcon

What is the problem this feature would solve?

On 4.0.7, importing a schema that uses not fails:

SchemaRepresentation.fromJsonSchemaDocument(JsonSchema.fromSchemaDraft07({
  type: "object",
  properties: { a: { type: "string" } },
  not: { required: ["b"] }
}))
// Cannot import JSON Schema keyword "not": Effect has no equivalent constraint.

github-workflow.json uses not 9 times and dependabot-2.0.json once, mostly to forbid combinations such as branches together with branches-ignore.

Context: validating .github/dependabot.yaml and GitHub workflow files with SchemaRepresentation.fromJsonSchemaDocument against the SchemaStore documents dependabot-2.0.json and github-workflow.json, to replace ajv. Since #7410 the importer rejects keywords it cannot represent, which is the right failure, but it means both real-world documents cannot be imported at all. This is one of five gaps found in those two documents; each is filed separately.

What is the feature you are proposing to solve the problem?

Import not as a check that fails when the value decodes against the negated schema. Exporting it back to JSON Schema as not would keep round-trips lossless.

What alternatives have you considered?

Activity

  1. self-assigned this
    on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions