Problem
Worker format_router.SUPPORTED_FILE_TYPES and README list .json as supported (JsonParseAdapter exists). The API admission default in packages/shared-python/shared/core/config/storage.py does not:
SUPPORTED_EXTENSIONS: str = Field(
default=".doc,.docx,.pdf,.txt,.xls,.xlsx,.pptx,.jpg,.jpeg,.png,.md,.html,.htm",
)
A self-hosted install that does not override SUPPORTED_EXTENSIONS therefore rejects .json at the API even though the worker can parse it.
.html / .htm are already in both the worker router and the storage default. .json is the odd one out.
Why this is not a drive-by patch
Changing the storage default is a public admission-behavior change. apps/api/.env.example / apps/worker/.env.example currently also omit .json (after dropping the unsupported .csv advertisement in a separate PR). Adding .json to the default should be an explicit maintainer decision, not bundled with example cleanup.
Suggested options
- Add
.json to the SUPPORTED_EXTENSIONS default and both .env.example files so out-of-the-box matches worker/README.
- Keep the default as-is and document
.json as opt-in via SUPPORTED_EXTENSIONS.
I am not implementing either here. Asking which contract you want.
Problem
Worker
format_router.SUPPORTED_FILE_TYPESand README list.jsonas supported (JsonParseAdapterexists). The API admission default inpackages/shared-python/shared/core/config/storage.pydoes not:A self-hosted install that does not override
SUPPORTED_EXTENSIONStherefore rejects.jsonat the API even though the worker can parse it..html/.htmare already in both the worker router and the storage default..jsonis the odd one out.Why this is not a drive-by patch
Changing the storage default is a public admission-behavior change.
apps/api/.env.example/apps/worker/.env.examplecurrently also omit.json(after dropping the unsupported.csvadvertisement in a separate PR). Adding.jsonto the default should be an explicit maintainer decision, not bundled with example cleanup.Suggested options
.jsonto theSUPPORTED_EXTENSIONSdefault and both.env.examplefiles so out-of-the-box matches worker/README..jsonas opt-in viaSUPPORTED_EXTENSIONS.I am not implementing either here. Asking which contract you want.