Skip to content

Merge exoscale-assets and s3-commands branches into a unified branch with environment-specific settings #38

@CarolineDenis

Description

@CarolineDenis

Description:
Currently, our webasset server repo maintains two separate branches:

  • exoscale-assets
  • s3-commands

This setup creates overhead in maintaining duplicate logic, synchronizing changes, and increases the risk of divergence between the two branches.

Proposal:

  • Merge both branches into a single main branch.
  • Introduce configuration-based settings (e.g., environment variables, config files, or build flags) to differentiate behaviors between Exoscale and S3 use cases.
  • Ensure that the correct environment is applied during deployment by using these settings instead of relying on separate branches.
  • Unify configuration across all asset servers (both internal and external) to minimize misconfiguration risks and reduce the possibility of disruption or crashes.

Why this change is needed:

  • Consistency: All bug fixes, features, and updates happen in one branch, reducing the chance of branches drifting apart.
  • Simplified workflow: Developers only need to work with one branch and can switch context with settings instead of branching.
  • Reduced outages from misconfiguration: Currently, some servers default to HTTP while production uses HTTPS. This mismatch caused downtime, since HTTPS instances of Specify 7 cannot communicate with HTTP asset servers, resulting in complete load failures.
  • Production-safe defaults: Defaults should always reflect the configurations we use in production. Providing untested defaults (e.g., HTTP) increases the risk of outages for us and for external users.
  • Faster development & maintenance: Eliminates the need to cherry-pick changes between two branches, reduces merge conflicts, and ensures consistent pipelines.

Next Steps:

  • Compare the two branches to identify differences.
  • Merge s3-commands into exoscale-assets (or vice versa) as the new default branch.
  • Introduce unified configuration files (e.g., config.exoscale.json and config.s3.json) or environment variable–based toggles.
  • Make HTTPS the default configuration to align with production usage.
  • Update documentation to explain how to switch between Exoscale and S3 modes.
  • Test both configurations thoroughly.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions