I Love Flamingo Flamingo Versions Save

Flamingo Framework and Core Library. Flamingo is a go based framework to build pluggable applications. Focus is on clean architecture, maintainability and operation readiness.

v3.8.1

3 weeks ago

Version v3.8.1 (2024-04-26)

Ops and CI/CD

  • fix version matrix (#398) (9a3f8230)

Chores and tidying

  • deps: update quay.io/keycloak/keycloak docker tag to v24 (#397) (e769812c)
  • deps: update module github.com/vektra/mockery/v2 to v2.42.3 (#399) (ca1ae56b)
  • deps: update golangci/golangci-lint-action action to v5 (#400) (9b17e2f9)
  • deps: update module github.com/coreos/go-oidc/v3 to v3.10.0 (#393) (b00c8146)
  • dep: update go to 1.22.0 (#379) (64cddb8a)
  • deps: update module golang.org/x/sync to v0.7.0 (#396) (ed02827e)
  • deps: bump golang.org/x/net from 0.22.0 to 0.23.0 (#395) (4cb80063)
  • deps: update module golang.org/x/oauth2 to v0.19.0 (#394) (bcc53161)
  • deps: update module github.com/golang-jwt/jwt/v5 to v5.2.1 (#390) (9037a18f)
  • deps: update quay.io/keycloak/keycloak docker tag to v23.0.7 (#388) (157b02d5)
  • deps: update module go.uber.org/zap to v1.27.0 (#387) (6f7f4fff)
  • deps: update module github.com/redis/go-redis/v9 to v9.5.1 (#386) (4f32b254)
  • deps: update module github.com/vektra/mockery/v2 to v2.42.2 (#384) (81b575b3)
  • deps: update golangci/golangci-lint-action action to v4 (#385) (28304163)
  • deps: update module golang.org/x/oauth2 to v0.18.0 (#383) (b2a64b45)
  • deps: bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 (#391) (268a07bd)
  • deps: bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (#392) (0533567e)
  • deps: update module github.com/stretchr/testify to v1.9.0 (#389) (352dec7c)
  • fix linter errors (#381) (f2405d33)

What's Changed

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.8.0...v3.8.1

v3.8.0

3 months ago

Version v3.8.0 (2024-02-07)

Features

  • oidc: Make state timeout duration configurable to support long taking sign ins (#362) (f4107584)

Chores and tidying

  • dep: update go to 1.21 (#380) (65f3f924)
  • deps: update module github.com/golang-jwt/jwt/v4 to v5 (#377) (f9ef8155)
  • deps: update quay.io/keycloak/keycloak docker tag to v23 (#378) (79074598)
  • deps: update module golang.org/x/sync to v0.6.0 (#375) (72d07ff3)
  • deps: update actions/setup-go action to v5 (#376) (09552898)
  • deps: update module go.uber.org/zap to v1.26.0 (#374) (ffa968ef)
  • deps: update module github.com/vektra/mockery/v2 to v2.40.1 (#354) (1acc174f)
  • deps: update module github.com/google/go-cmp to v0.6.0 (#372) (7f0687d8)
  • deps: update module github.com/spf13/cobra to v1.8.0 (#373) (710a409c)
  • deps: update module github.com/golang-jwt/jwt/v4 to v5 (#345) (867154a6)
  • deps: update module github.com/redis/go-redis/v9 to v9.4.0 (#351) (8271981c)
  • deps: update module github.com/gofrs/uuid to v4.4.0+incompatible (#317) (14bc5586)
  • deps: update module github.com/coreos/go-oidc/v3 to v3.9.0 (#371) (8f993a76)
  • deps: update module github.com/gorilla/sessions to v1.2.2 (#370) (3e62d69d)
  • deps: update module golang.org/x/oauth2 to v0.16.0 (#358) (5162059d)
  • deps: update quay.io/keycloak/keycloak docker tag to v22.0.5 (#359) (5067e9a9)
  • deps: update module github.com/hashicorp/golang-lru/v2 to v2.0.7 (#360) (bf357e3b)
  • deps: bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 (#363) (de2f7138)
  • deps: bump golang.org/x/crypto from 0.12.0 to 0.17.0 (#367) (f57d291c)
  • docs: fix link to opentelemetry (#366) (9e7dbb47)
  • docs: Small documentation updates for docs.flamingo.me (#365) (9eb5e0fe)
  • opencensus: deprecate opencensus module (#364) (8a2b30c4)
  • deps: update actions/checkout action to v4 (#357) (258bd2d6)
  • deps: update module github.com/hashicorp/golang-lru/v2 to v2.0.6 (#356) (d56a090a)
  • deps: update module github.com/hashicorp/golang-lru to v2 (#314) (29db3cf4)

What's Changed

New Contributors

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.7.0...v3.8.0

v3.7.0

8 months ago

Version v3.7.0 (2023-08-21)

Features

  • log: enhance memory efficiency for the zap logger with fields (#340) (f977f5f7)
  • core/auth/oidc: Add support of AuthCodeOption in the token exchange during callback (#338) (b2453bab)

Fixes

  • silentlogger: remove unnecessary fields (#347) (63a53c88)
  • zap: only record log metrics when we actually log something (#341) (b0dca2b3)

Refactoring

  • core/zap: clean up zap module and add tests (a7f94766)

Ops and CI/CD

  • force on latest go version & cleanup jobs (#353) (69507dd2)

Chores and tidying

  • deps: update module golang.org/x/oauth2 to v0.11.0 (#331) (9d3adbd6)
  • deps: update quay.io/keycloak/keycloak docker tag to v22 (#352) (98f5a027)
  • deps: update module github.com/leekchan/accounting to v0.3.1 (#250) (63c33cd2)
  • deps: update module go.uber.org/automaxprocs to v1.5.3 (#350) (7a7bf310)
  • deps: update module github.com/openzipkin/zipkin-go to v0.4.2 (#348) (9cea11d2)
  • deps: update module go.uber.org/zap to v1.25.0 (2ab0354b)
  • go: bump go version to 1.20 (#349) (d63caa90)
  • deps: update module github.com/vektra/mockery/v2 to v2.32.4 (#328) (38460154)
  • session: health check config cleanup (#342) (41f0c480)
  • deps: update module github.com/redis/go-redis/v9 to v9.0.5 (#343) (f616b5ea)
  • deps: update module github.com/coreos/go-oidc/v3 to v3.6.0 (#344) (94a60a28)
  • deps: update module github.com/golang-jwt/jwt/v4 to v4.5.0 (#322) (e6d8895d)
  • deps: update module go.uber.org/automaxprocs to v1.5.2 (#330) (62c67564)
  • deps: update actions/setup-go action to v4 (#332) (bec3e4cc)
  • deps: update module github.com/stretchr/testify to v1.8.4 (#329) (063732d9)

What's Changed

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.6.1...v3.7.0

v3.6.1

1 year ago

Version v3.6.1 (2023-05-04)

Fixes

  • web: handle reverse router being nil (2b79ba7d)

Chores and tidying

  • deps: update module github.com/spf13/cobra to v1.7.0 (#252) (5ac51fbd)

What's Changed

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.6.0...v3.6.1

v3.6.0

1 year ago

Version v3.6.0 (2023-04-19)

Features

  • zap: silent zap logging (#308) (c91a24b3)

Chores and tidying

  • deps: update module github.com/go-redis/redis/v8 to v9 (#333) (d5741fd9)
  • add regex to detect go run/install commands (dc92fff0)

What's Changed

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.5.1...v3.6.0

v3.5.1

1 year ago

Version v3.5.1 (2023-03-10)

Fixes

  • systemendpoint: prevent data race on server (#324) (0d094a24)
  • updating community join url to discord (#320) (7947dfd5)
  • core/auth/oauth: Properly mark OIDC callback error handler as optional (#318) (f45a90c1)

Documentation

  • introduce slack channel (#323) (23a68460)

Chores and tidying

  • deps: bump golang.org/x/net from 0.5.0 to 0.7.0 (59000bde)
  • deps: update mockery golangci-lint and (#325) (4fd9102d)

What's Changed

New Contributors

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.5.0...v3.5.1

v3.5.0

1 year ago

Version v3.5.0 (2023-01-26)

Features

  • core/auth/oauth: Add optional OIDC callback error handler (4fe0f89e)

Fixes

  • cache: do not rewrite trace id (#306) (b1a5918a)
  • framework/opencensus: x-correlation-id condition (#310) (5909a729)

Chores and tidying

  • deps: update module github.com/coreos/go-oidc/v3 to v3.5.0 (#313) (372b7b45)
  • deps: update module golang.org/x/oauth2 to v0.4.0 (bd3ae5d3)
  • deps: update module github.com/hashicorp/golang-lru to v0.6.0 (9c62154e)
  • deps: update module github.com/golang-jwt/jwt/v4 to v4.4.3 (7189aed3)
  • deps: update module contrib.go.opencensus.io/exporter/prometheus to v0.4.2 (cb8d1a5d)
  • make linter happy (3017d8ab)
  • deps: update module go.opencensus.io to v0.24.0 (#302) (6e915e2a)
  • deps: update module flamingo.me/dingo to v0.2.10 (#299) (0aace54a)
  • deps: update module github.com/gofrs/uuid to v4.3.1+incompatible (#295) (1fe7e9c4)
  • deps: update module golang.org/x/oauth2 to v0.2.0 (#296) (0ad70578)

What's Changed

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.4.0...v3.5.0

v3.4.0

1 year ago

Version v3.4.0 (2022-11-03)

Features

  • session: add timeout for redis connection (#277) (eb0fe55f)
  • framework/config: module dump command (#273) (8a1b9154)
  • auth: add session refresh interface (#269) (3eba3475)
  • core/oauth: support issuer URL overriding (#227) (fa5bd34b)
  • oauth: add oauth identifier (#220) (9883a4dc)

Fixes

  • framework/web: Avoid error log pollution, switch context cancelled log level to debug (#294) (c1d6dc87)
  • framework/flamingo/log: added nil check for StdLogger and Logger (f636b7ec)
  • framework: Add missing scheme property to the router cue config (#274) (3ee35cd8)
  • router: allow config for public endpoint (3f47d251)
  • framework/systemendpoint: use real port information in systemendpoint (4f59dc4a)
  • framework/prefixrouter: use real port information in ServerStartEvent (79ae6f95)
  • servemodule: use real port information in ServerStartEvent (c5209de3)
  • oauth: correctly map access-token claims (5a7331f3)
  • auth: add missing auth.Identity interface (#216) (27b93c16)
  • deps: exclude unmaintained redigo (#218) (6061f4ab)
  • fix missing gob register (0c488981)

Tests

  • internalauth: add unittests (#258) (46341b4d)
  • requestlogger: add unittests (c8c18474)
  • framework/opencensus: add tests (932299a5)

Ops and CI/CD

  • adjust gloangci-lint config for github actions (bbabfc08)
  • make "new-from-rev" work for golangci-lint (258a7b50)
  • remove now unnecessary steps from main pipeline (dc2df28f)
  • fix git rev (84ebd56d)
  • add golangci-lint to pipeline (bf3eaeab)
  • semanticore: add semanticore (a741f30d)

Documentation

  • core/gotemplate: Enhance documentation (#291) (8b5b8a97)
  • typos and wording (#290) (9745b18e)
  • flamingo: update logos (4227815b)

Chores and tidying

  • deps: update module github.com/coreos/go-oidc/v3 to v3.4.0 (#293) (f5a791f1)
  • deps: update module github.com/google/go-cmp to v0.5.9 (#282) (8d546ca7)
  • deps: update module github.com/openzipkin/zipkin-go to v0.4.1 (#286) (bf432c9f)
  • deps: update module github.com/stretchr/testify to v1.8.1 (#292) (56ddf827)
  • deps: update irongut/codecoveragesummary action to v1.3.0 (#278) (2399c75f)
  • bump to go 1.19 (#279) (da07d03e)
  • deps: update module github.com/stretchr/testify to v1.8.0 (#271) (c81b3226)
  • deps: update module github.com/golang-jwt/jwt/v4 to v4.4.2 (#272) (7dd92887)
  • deps: update module github.com/stretchr/testify to v1.7.2 (#270) (fb271199)
  • deps: update module go.uber.org/automaxprocs to v1.5.1 (2b868ee5)
  • deps: update module github.com/openzipkin/zipkin-go to v0.4.0 (38acb057)
  • deps: update module github.com/golang-jwt/jwt/v4 to v4.4.1 (daf8fd7a)
  • deps: update module github.com/hashicorp/golang-lru to v0.5.4 (2b8bd64c)
  • gomod: go mod tidy (3e911268)
  • deps: update module github.com/coreos/go-oidc/v3 to v3.2.0 (0e52661e)
  • deps: update dependency quay.io/dexidp/dex to v2.28.1 (2643bd00)
  • deps: update module contrib.go.opencensus.io/exporter/prometheus to v0.4.1 (5bd0be1a)
  • deps: update module github.com/stretchr/testify to v1.7.1 (d643c92c)
  • deps: update module github.com/google/go-cmp to v0.5.8 (559dea58)
  • deps: update module contrib.go.opencensus.io/exporter/zipkin to v0.1.2 (11533458)
  • deps: update actions/setup-go action to v3 (3592ea01)
  • deps: update actions/checkout action to v3 (c9d2f124)
  • deps: update module github.com/go-redis/redis/v8 to v8.11.5 (2b6581a8)
  • deps: update module contrib.go.opencensus.io/exporter/jaeger to v0.2.1 (f7285f09)
  • deps: update dependency quay.io/keycloak/keycloak to v8.0.2 (58f1a27b)
  • deps: update golang.org/x/oauth2 digest to 9780585 (bb60190b)
  • deps: update github.com/golang/groupcache digest to 41bb18b (68a4f7e2)
  • Update renovate.json (ca2c97b9)
  • deps: add renovate.json (e0edaf27)
  • bump go version to 1.17, replace golint with staticcheck (#222) (ae2b39e8)
  • auth: switch to github.com/gofrs/uuid (1854abc6)

Other

  • continue-on-error for coverage pr comment (#288) (21b26df3)
  • framework/flamingo: replace redis session backend (#219) (8451ed0b)
  • core/auth: update to recent go-oidc v3, allow oidc issuer URL override (#212) (86076485)
  • add comment to StateEntry (a8be5d77)
  • allow multiple parallel state responses (d7b30a06)

Important Notes

  • core/internalauth:
    • switched from github.com/dgrijalva/jwt-go to github.com/golang-jwt/jwt/v4. this is a drop-in replacement

      use search and replace to change the import path or add a replace statement to your go.mod:

      replace (
          github.com/dgrijalva/jwt-go v3.2.0+incompatible => github.com/golang-jwt/jwt/v4 v4.1.0
      )
      

      More details can be found here: https://github.com/golang-jwt/jwt/blob/main/MIGRATION_GUIDE.md

  • core/auth:
    • oauth.Identity includes Identity. This is a backwards-incompatible break

v3.2.0

  • license:
    • Flamingo now uses the MIT license. The CLA has been removed.
  • core/auth:
    • Flamingo v3.2.0 provides a new auth package which makes authentication easier and more canonical.
    • the old core/oauth is deprecated and provides a compatibility layer for core/auth.
  • sessions:
    • web.SessionStore provides programmatic access to web.Session
    • flamingo.session.saveMode allows to define a more granular session save behaviour
  • config loading:
    • both routes.yml and routes.yaml are now supported
  • framework/web:
    • the framework router got a couple of stability updates.
    • the web responder and responses don't fail anymore for uninitialized responses.
    • error responses are wrapped with a http error message
    • the flamingo.static.file controller needs a dir to not serve from root.
  • errors:
    • all errors are handled via Go's error package
  • go 1.13/1.14:
    • support for 1.12 has been dropped

v3

  • "locale" package:

    • the templatefunc __(key) is now returning a Label and instead additional parameters you need to use the label setters (see doc)
  • Deprecated Features are removed:

    • flamingo.me/dingo need to be used now
    • support for responder.*Aware types is removed
  • framework/web.Response is now framework/web.Result

  • web.Request is heavily condensed

    • Access to Params has changed
  • web.Session does not expose .GS() for the gorilla session anymore

  • event.Subscriber changes:

    • is getting context.Context as the first argument: Notify(ctx context.Context, e flamingo.Event)
    • event.Subscriber are registered via framework/flamingo.BindEventSubscriber(injector).To(...)
    • There is no SubscriberWithContext anymore!
  • several other Modules have been moved out of flamingo and exist as separate modules:

    • For all the stuff in this section: you may use the script docs/updates/v3/renameimports.sh for autoupdate the import paths in your project and to do some first replacements.

    • moved modules outside of flamingo:

      • flamingo/core/redirects
      • flamingo/core/pugtemplate
      • flamingo/core/form2
      • flamingo/core/form (removed)
      • flamingo/core/csrf
      • flamingo/core/csp
      • flamingo/core/captcha
    • restructures inside flamingo:

      • core/requestTask is renamed to core/requesttask
      • core/canonicalUrl is renamed to core/canonicalurl
      • core/cmd package moved to framework/cmd and the cmd have been moved to the packages they belong to
      • framework/router package merged into framework/web
      • framework/event package merged into framework/flamingo
      • framework/template package merged into framework/flamingo:
        • instead of template.BindFunc and template.BindCtxFunc you have to use flamingo.BindTemplateFunc
      • framework/session package merged into framework/flamingo:
        • instead of using the module session.Module use flamingo.SessionMdule
  • flamingo now uses go mod - we encourage to use it also in the projects:

    • Init the project
      go mod init YOURMODULEPATH
      
    • If you want to link the flamingo core to your project (because you are working on the core also)
      • Option 1: edit "go.mod" and add this lines (make sure to not commit them to git)
        replace (
          flamingo.me/flamingo/v3 => ../../PATHTOFLAMINGO
          flamingo.me/flamingo-commerce/v3 => ../../PATHTOFLAMINGO
        )
        
      • Option 2: use go mod vendor and link the modules after this from vendor folder
  • Prefixrouter configuration: rename prefixrouter.baseurl in flamingo.router.path

v2

  • web.Responder is now used
    • instead of injecting
       responder.JSONAware
       responder.RenderAware
       responder.RedirectAware
      
      in a controller you need to inject
      responder *web.Responder
      
      And use the Methods of the Responder: c.responder.Data() c.responder.Render() c.responder.Redirect()
  • dingo is moved out to flamingo.me/dingo and we recommend to use the Inject() methods instead of public properties.

What's Changed

New Contributors

Full Changelog: https://github.com/i-love-flamingo/flamingo/compare/v3.3.0...v3.4.0

v3.3.0

2 years ago
  • relative urls in openid connect
  • fix session bug with openid connect
  • minor refactorings
  • Updates dependencies (could be breaking for a deprecated dependency)

v3.2.2

3 years ago