Skip to main content
Use JSON resources for extension features like rulesets and managed schemas with validation and predictable output handling. Extension.js processes manifest-referenced JSON resources and validates them for known feature types. It watches them during development and emits output assets when needed.

JSON capabilities

JSON support

Common manifest fields:

Sample JSON declaration in manifest.json

Example JSON declaration in manifest.json:

Output path

Extension.js emits JSON resources by feature context (for example, DNR and storage schema outputs):

Development behavior

  • Extension.js tracks manifest-referenced JSON files as file dependencies.
  • JSON edits trigger recompilation.
  • Some structural manifest changes related to JSON may require a dev server restart.

Validation behavior

Extension.js validates:
  • JSON syntax for referenced resources
  • DNR ruleset shape (array-based ruleset expectations)
  • Managed storage schema shape (object-based expectations)

Environment placeholders

Extension.js replaces $EXTENSION_* placeholders in emitted .json assets during compilation, using the same pass as static HTML placeholder replacement.

Best practices

  • Keep manifest-referenced JSON focused on browser-required resource formats.
  • Validate JSON resources in continuous integration (CI) before packaging.
  • Prefer stable file paths in manifest to reduce restart-required structural changes in development.
  • For app data consumed by code, consider JSON imports in JS/TS modules separately from manifest resource JSON.

Next steps