Sign inSign up

gecoit84/heyform

By gecoit84

Updated 6 months ago

Image
0

520

gecoit84/heyform repository overview

HeyForm — Geco-IT patches

Patches applied on top of the official next branch (eb93574).


Features

Generic OIDC login

Adds support for any standards-compliant OpenID Connect provider (Authelia, Keycloak, Authentik, etc.) as a login method, using the certified openid-client library.

The iss parameter is forwarded through the full callback chain to satisfy providers that implement RFC9207 (authorization_response_iss_parameter_supported). Tested with Authelia.

Redirect URI to register in your identity provider:

https://forms.example.com/connect/oidc/callback
VariableRequiredDescription
OIDC_CLIENT_IDyesClient ID registered in your IdP
OIDC_CLIENT_SECRETyesClient secret
OIDC_ISSUERyesIssuer URL (e.g. https://sso.example.com)
OIDC_DISPLAY_NAMEnoLabel shown on the login button (default: SSO)

Disable email/password authentication

Disables email-based login and registration to enforce SSO-only authentication. The email/password form is hidden in the UI and blocked at the API level.

VariableDefaultDescription
APP_DISABLE_EMAIL_LOGINfalseDisable email login and sign-up

Allow user provisioning via SSO when registration is disabled

When APP_DISABLE_REGISTRATION=true, new users coming from a social/OIDC login are still blocked by default. Set ENABLE_SOCIAL_REGISTRATION=true to allow first-login provisioning via SSO while keeping email sign-up disabled.

VariableDefaultDescription
APP_DISABLE_REGISTRATIONfalseDisable all user registration
ENABLE_SOCIAL_REGISTRATIONfalseAllow user creation via social/OIDC login even if APP_DISABLE_REGISTRATION=true

Remove HeyForm branding by default

Sets removeBranding to true at workspace creation time, hiding the "Powered by HeyForm" badge in the form footer for all new workspaces.

VariableDefaultDescription
APP_REMOVE_BRANDINGfalseRemove HeyForm branding badge on new workspaces

Note: Only affects workspaces created after deployment. For existing workspaces run:

db.teams.updateMany(
  { removeBranding: { $exists: false } },
  { $set: { removeBranding: true } }
)

Typical SSO-only setup

# Authentication
APP_DISABLE_REGISTRATION=true
APP_DISABLE_EMAIL_LOGIN=true
ENABLE_SOCIAL_REGISTRATION=true

# OIDC provider
OIDC_CLIENT_ID=heyform
OIDC_CLIENT_SECRET=your-secret
OIDC_ISSUER=https://sso.example.com
OIDC_DISPLAY_NAME=Company SSO

# Branding
APP_REMOVE_BRANDING=true

Bugfixes

  • Mongoose numeric enum validationObject.values() on TypeScript numeric enums includes string reverse mappings, causing Mongoose to accept string values like "ADMIN" or "TRASH" instead of rejecting them. Fixed by filtering to numeric values only. Affected models: form, template, submission, app, attachment, integration, team-activity, team-member.
  • disableLoginWithGoogle / disableLoginWithApple missing from runtimeConfig — Google and Apple login buttons were always visible even when unconfigured.
  • removeBranding missing from PUBLIC_FORM_GQL — the field was returned by the server but not requested by the frontend GraphQL query, so the branding badge was never hidden even when removeBranding=true in the workspace settings.

Tag summary

Content type

Image

Digest

sha256:3e6d34056

Size

241.1 MB

Last updated

6 months ago

docker pull gecoit84/heyform:next-geco