发布

  • [OPIK-6434] [BE][FE] chore: remove TOGGLE_CSV_UPLOAD_ENABLED toggle (#6666)

    frostbyte_neo 发布于 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 from fa9aeb9c91
    (collaboratorsTabEnabled).

    Also restore the java.util.List import 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
      fa9aeb9c91 for 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

    下载附件