-
[OPIK-6434] [BE][FE] chore: remove TOGGLE_CSV_UPLOAD_ENABLED toggle (#6666)
发布于
2026-05-14 10:54:06 +00:00 - [OPIK-6434] [BE][FE] chore: remove TOGGLE_CSV_UPLOAD_ENABLED toggle
Hardcode CSV upload as always-on. TOGGLE_CSV_UPLOAD_ENABLED gated the
POST /v1/private/datasets/items/from-csv endpoint and the CSV upload
dialog in the FE. It was set to true in cloud SaaS prod opik
(comet-helm values-production-opik.yaml), the public chart default
(comet-ml-helm-chart values.yaml), self-hosted-eks, STSaaS dev
sandboxes, and inherited true by all STSaaS prod customers. The only
environments where it defaulted to false were cloud SaaS dev/stg
(unset overrides) and OSS docker-compose (unset override).After this change every deployment exposes the CSV upload endpoint
and UI. Cloud SaaS prod, self-hosted-eks, STSaaS, and chart-default
behavior is unchanged.SDK compat: csvUploadEnabled is kept on ServiceTogglesConfig as
@Deprecated. The /v1/private/feature-toggles response shape stays
intact so older Python/TypeScript SDK clients that declare
csv_upload_enabled / csvUploadEnabled as a required boolean keep
deserializing successfully (same pattern as collaboratorsTabEnabled in
fa9aeb9c91).- Backend: drop csvUploadEnabled gate from DatasetsResource (and its
404 ApiResponse annotation), drop isCsvUploadEnabled() from
FeatureFlags, drop TOGGLE_CSV_UPLOAD_ENABLED from
apps/opik-backend/config.yml and config-test.yml. Field stays on
ServiceTogglesConfig with @Deprecated and a SDK-compat comment. - Backend tests: delete testCsvUploadFeatureToggleDisabled from
DatasetsResourceIntegrationTest (and now-unused multipart/IO
imports); drop the customConfigs override from
DatasetsCsvUploadResourceTest. - Frontend: remove CSV_UPLOAD_ENABLED from FeatureToggleKeys and the
default state. Inline isCsvUploadEnabled=true in v1
AddEditTestSuiteDialog and v2 useDatasetForm /
AddEditDatasetDialogWrapper / CreateDatasetSidebar; delete the
JSON-mode branches (validateCsvFile path,
useDatasetItemBatchMutation, csvData state, fetchDataset,
isOverlayShown overlay). Delete the now-orphan v2 CsvUploadDialog
component. - Docs: drop "Enable the Feature Toggle" step from
large_csv_uploads.mdx (v1 + v2); keep all the nginx / idle-timeout /
disk-space / batch-size guidance and renumber the steps; drop
TOGGLE_CSV_UPLOAD_ENABLED from the docker-compose env block and the
helm values example.
Follow-up (separate repos): remove the now-ignored
TOGGLE_CSV_UPLOAD_ENABLED override in comet-helm
values-production-opik.yaml, the chart default in
comet-ml-helm-chart values.yaml, and the three overrides in
dply-managed-clients (FRED/dev/stsaas-dev, FRED/dev/self-hosted-eks,
FRED/dev/liya-test).Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- [OPIK-6434] Fix CI: keep csvUploadEnabled in config + restore List import
The previous commit removed csvUploadEnabled from apps/opik-backend/config.yml
and config-test.yml entirely, but the @NotNull field still exists on
ServiceTogglesConfig (kept for SDK compat). Dropwizard fails to bind the
configuration at startup without a value, breaking every backend integration
test and the SDK E2E suites. Restore the lines with the value hardcoded and
the env-var binding dropped, mirroring the pattern fromfa9aeb9c91
(collaboratorsTabEnabled).Also restore the
java.util.Listimport in DatasetsCsvUploadResourceTest:
removed it as unused when dropping the customConfigs line, but List is still
referenced as the return type of the getDatasetItems helper at line 453.Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- [OPIK-6434] chore: align csvUploadEnabled comments with neighboring toggles
Add explicit
# Default: true/# Description: ...metadata lines on top
of the existing deprecation note, matching the format used by surrounding
serviceToggles entries.Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- [OPIK-6434] Drop @Deprecated SDK-compat residue for csvUploadEnabled + collaboratorsTabEnabled
Per andrescrz's review: keeping the fields on ServiceTogglesConfig with
@Deprecated comments is active tech debt, not a parking-it workaround. The
fields exist only in Fern-generated SDK types (no consumer code in
sdks/python/src/opik or sdks/typescript/src/opik branches on them outside the
auto-gen /rest_api/ layer), so the next Fern regen will drop them from the
SDK types automatically. Keeping them server-side guarantees we'll have to
undo the workaround in the regen PR anyway.This commit fully removes:
- csvUploadEnabled from ServiceTogglesConfig.java, apps/opik-backend/config.yml,
and src/test/resources/config-test.yml (introduced earlier in this PR). - collaboratorsTabEnabled from the same three locations (introduced in
fa9aeb9c91for OPIK-6434 with the same SDK-compat reasoning).
Only failure mode: an old SDK that explicitly calls
client.service_toggles.get_service_toggles() against a newer server that
omits these fields would raise a pydantic ValidationError / TS serializer
rejection. This is a narrow surface — no Opik SDK consumer code calls that
endpoint; it's the frontend's runtime toggle fetch.Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Co-authored-by: Claude Opus 4.7 (1M context) noreply@anthropic.com
下载附件