Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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