Skip to content

[FEAT] Quarterdeck welcome email body should be in template#50

Merged
chris-okuda merged 3 commits intomainfrom
chrisokuda/sc-37123/welcome_email_content_templates
Feb 12, 2026
Merged

[FEAT] Quarterdeck welcome email body should be in template#50
chris-okuda merged 3 commits intomainfrom
chrisokuda/sc-37123/welcome_email_content_templates

Conversation

@chris-okuda
Copy link
Contributor

@chris-okuda chris-okuda commented Feb 10, 2026

Scope of changes

Refactored the EmailTemplatePaths to just EmailTemplate and built it as a way to load the templates from the filesystem easily.

Please also review the paired PR: https://github.com/rotationalio/endeavor/pull/311

Fixes SC-37123

Type of change

  • new feature
  • bug fix
  • documentation
  • testing
  • technical debt
  • other (describe)

Acceptance criteria

I added a test for this, see the app_test.go file.

Please also review this paired PR: https://github.com/rotationalio/endeavor/pull/311

Definition of Done

  • I have manually tested the change running it locally (having rebuilt all containers) or via unit tests
  • I have added unit and/or integration tests that cover my changes
  • I have added new test fixtures as needed to support added tests
  • I have updated the dependencies list if necessary (including updating yarn.lock and/or go.sum)
  • Check this box if a reviewer can merge this pull request after approval (leave it unchecked if you want to do it yourself)
  • I have notified the reviewer via Shortcut or Slack that this is ready for review
  • Documented service configuration changes or created related devops stories

Reviewer(s) checklist

  • Any new user-facing content that has been added for this PR has been QA'ed to ensure correct grammar, spelling, and understandability.
  • Are there any TODOs in this PR that should be turned into stories?

…the refactored EmailTemplate instead of using string content
@chris-okuda chris-okuda self-assigned this Feb 10, 2026
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

* add to env.template
* add email body templates for local development use
* change a bunch of `conf` to `s.conf`
* fix split_words issue on EmailTemplate
* re-enable the QD_APP_BASE_URI env var for the app base URI because the audience may have multiple URL values which causes issues
type AppConfig struct {
Name string `split_words:"true" default:"Quarterdeck" desc:"the descriptive name of the application"`
LogoURI string `split_words:"true" default:"https://rotational.ai/hs-fs/hubfs/Rotational%20Logo%20Hor%201073x280.png" desc:"the logo for the application"`
BaseURI string `split_words:"true" env:"QD_AUTH_AUDIENCE" desc:"base URL for the application"`
Copy link
Contributor Author

@chris-okuda chris-okuda Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bbengfort I had to remove the env:... here, as the auth audience might be multiple URLs, and we need just the App-related one. This will have to be refactored later when we do multiple Apps/Orgs anyways, so having some redundant config is just a problem we have to deal with for now I think.

Probably, later on we'll just collect the App.BaseURI's for all of the Apps we're supporting once we refactor to support multiple Apps, and append them together for the Auth.Audience value, or something like that. We can also use this base URI for the login, logout, and other related paths that we are currently manually entering into the config at the AuthConfig level.


// Set the global level
zerolog.SetGlobalLevel(conf.GetLogLevel())
zerolog.SetGlobalLevel(s.conf.GetLogLevel())
Copy link
Contributor Author

@chris-okuda chris-okuda Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the bare conf were turned into s.conf because conf might be nil for the new "global config" which was causing panics.

Comment on lines +94 to +96
// Loads the welcome email template content from the provided paths. Can be used
// concurrently.
func (p *EmailTemplate) LoadTemplateContent() (err error) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I chose to do it this way rather than refactoring the commo template loading system to support something like this. In the future we may want to do more work on commo to support this there instead of in this config file.

@chris-okuda chris-okuda merged commit 9c326f7 into main Feb 12, 2026
8 checks passed
@chris-okuda chris-okuda deleted the chrisokuda/sc-37123/welcome_email_content_templates branch February 12, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants