lura

Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation

OTHER License

Stars
6K
Committers
47

Bot releases are visible (Hide)

lura - v2.0.1

Published by alombarte over 2 years ago

  • remove default transport
  • omit flaky integration test
  • endpoint level flatmap filter required at multi backend endpoints
  • Update documentation example
  • typo fixed
  • query string and header params renamed
  • support injecting custom jwt claims into the backend url pattern #537
  • Add GlibcVersion variable to the core package to set the GLIBC used by CGO at build time so plugins can build using the same version
  • integration tests removed
  • health endpoint test removed
  • avoid race conditions when tracking the auto-options
  • init and normalize are two different stages
  • go version var added to the core pkg
  • async pkg added
  • async agents added
  • backoff pkg for basic strategies added
  • Create SECURITY.md
  • accept customized log formatters for the gin engine
  • plugins log improved
  • config version upgraded
  • documentation improved
  • minor refactor
  • deprecated functions removed
  • use the records with lowest prio and normalize the result by weight
  • log the mw setup when enabled
  • health endpoint can be disabled o renamed
  • gin upgraded to v1.7.7
  • return nil responses when all the partials failed
  • integration tests improved
  • return the pipe error as the response body if required by configuration
  • better multi error logging
  • avoid logging expected errors on closing
  • support for namespace alias added
  • ut fixed
  • avoid mixing variadic and constant arguments
  • avoid dumping the array of arguments
  • use the release mode by default
  • Remove references to old examples repository
  • Improve some endpoint related error messages
  • Include prefix in endpoint related errors
  • Add log prefix with context
  • load graphql queries from dedicated files
  • auto options endpoint added
  • moving the v2 pkg to the root level
  • v2 added to the github workflow
  • v2 added to the github workflow
  • return status code as error details
  • integration tests added to v2
  • binding and running logic splitted
  • better gin engine initialization and customization
  • support for customizing the gin router added
  • spdx header added
  • basic graphql support added
  • initial commit of the v2
  • check if the data field is null before adding the static values
  • The headers to pass map should contain the header names already canonicalized
  • race and regular tests splited in 2 stages
  • 404 responses do not include the incomplete header
  • tls 1.3 added
  • replacement of the initial request with a clone fixed
  • Update .gitignore
  • go report badge updated
  • merge completed
  • Merge branch 'master' into plugin_logger
  • logger added to the test plugin
  • test the plugins
  • avoid checking everytime if the logger is set
  • spdx header added
  • spdx headers added
  • logger register added to the req/resp modifier plugins
  • logger register added to the server plugins
  • client plugins can accept loggers
  • upgrade config to version 2
  • Fix typo
lura - v1.4.0

Published by kpacha over 3 years ago

  • pkg doc fixed
  • fix project references and copyright
  • krakend references removed
  • small fixes to the README
  • added a minor comment regarding the name being ignored
  • ignore the cfg name when extracting the hash
  • Remove some old resources from docs folder
  • Update references to KrakenD, pointing to Lura Project.
  • donating the repo to the Linux Foundation
  • spdx headers added
  • do not set a default noroute handler
  • fix type definition
  • minimal documentation added
  • json-collection added as a valid output encoding for collections
  • support for modifier plugins added
  • Fix typo in slides
  • Used make to create array instead of a slice when capacity is certainly known.
lura - v1.3.0

Published by alombarte over 3 years ago

  • [feature] create a group for the declared enpoints so mw are injected just to the group
  • [bugfix] Moved CI from Travis to Github Actions
  • [feature] envar GODEBUG=x509ignoreCN=0 added to the tests
  • [feature] build and test workflow added to the repo actions
  • [feature] avoid using the default logger from the stdlib
  • [feature] Use filepath.Join to avoid problems with paths with or without a trailing slash
  • [bugfix] Fix integration tests
  • [feature] Increase map size
  • [bugfix] Fix tests
  • [feature] pass original request host in X-Forwarded-Host header
  • [feature] flatmap del operation accepts more than one argument
lura - v1.2.0

Published by alombarte about 4 years ago

  • [feature] Flatmap (array manipulation) now also at endpoint level
  • [bugfix] Removed wording with racist connotations whitelist and blacklist. Now using allow and deny instead.
  • [feature] Upgrade go to 1.15.
  • [feature] support for the append operation added
  • [feature] Added a new supported encoding safejson
  • [feature] support for nested targets added
  • [bugfix] Client plugin example fixed
  • [bugfix] Do not copy nil readers on no-op
  • [bugfix] Nested sequential params
  • [feature] Clone also the request body in the CloneRequest method
  • [feature] /__debug/ endpoint accepts now any method
  • [feature] Use the weight of the SRV record to generate the list of hosts when resolving a service name
  • [feature] Decompress gzipped responses before parsing them
  • [feature] Added a /__health endpoint
  • [feature] Ability to use collections in sequential proxy as input (collection filters)
  • [feature] Support using JWT claims as backend url params
  • [feature] Mutual TLS between KrakenD and clients added
lura - 1.0.0

Published by alombarte about 5 years ago

Summary of changes

  • [bugfix] http server plugin example fixed
  • [feature] go mod tidy
  • [upgrade] switch to go modules
  • [feature] godoc for http plugin packages added
  • [feature] Return all headers from proxy response
  • [feature] add to mux router funk clientIP
  • [upgrade] log improved
  • [bugfix] handler namespace fixed
  • [feature] http handler injection via plugin added
  • [feature] noop param extractor exported
  • [feature] code line of sight improved
  • [feature] use latest golang version 1.13.1
  • [feature] multilevel selection of parameters for sequential pipes
  • [feature] Push KrakenD User-Agent only if not overriding forwarded Header
lura - 0.9.0

Published by alombarte over 5 years ago

Summary of changes

  • [bugfix] Abort a sequential merge after the first error or incomplete response
  • [bugfix] Propagate the content length when present
  • [bugfix] Avoid counting output params referred to a response value
  • [feature] Flatmap filter for collections
  • [other] Old go versions 1.8 and 1.9 are now discontinued
  • [performance] Load balancing URL creation improved
  • [performance] URL creation for sequential merger improved
lura - 0.8.0

Published by alombarte over 5 years ago

Summary of changes

  • New routers Chi and httpmux
  • Mux based routers add multiple methods in same URL pattern
  • Integration tests
  • Mixing mandatory and optional query strings parameters is now possible
  • Error interface
  • Shadow backends / Traffic mirroring
  • Improved response headers
  • A fix in sequential backends
  • Mux based features now are like the Gin's ones
  • A detailed http executor
lura - 0.7.0

Published by alombarte almost 6 years ago

Summary of changes

  • Default configuration parser accepts now custom file readers. File formats accepted:
    • .json
    • .toml
    • .yaml
    • .yml
    • .properties
    • .props
    • .prop
    • .hcl
  • Replace the http package by transport. Getting ready for gRPC? (oops, spoiler)
  • Do not close a nil body (on the proxy layer)
  • Expose the HTTP server construction
  • Delay endpoint method sanitization until required
  • Sequential proxy merger
  • Add error details into the HTTP response
  • Bugfix: HTTP client timeout was set to 15 maximum seconds (no limit now)
  • Updated brand, new logo!

Between 0.6 and 0.7, we have published an intermediate release 0.6.1 with:

  • Support for HTTP2/HTTPS
  • FIX: query string parameters works now with arrays and repeated variables (e.g.: ?a[]=a1&a[]=a2&b=b1&b=b2)
  • Added Go 1.11 to the build matrix
lura - 0.6.1

Published by alombarte about 6 years ago

Summary of changes

  • NEW: Added support for HTTP2/HTTPS
  • FIX: query string parameters works now with arrays and repeated variables (e.g.: ?a[]=a1&a[]=a2&b=b1&b=b2)
  • UPDATE: Added Go 1.11 to the build matrix
  • Other minor fixes, compare to 0.6.0
lura - 0.6.0

Published by alombarte about 6 years ago

Summary of changes

  • Decoupled the http server from the router packages
  • Add the Service name in the configuration
  • BUGFIX: Merge with incomplete responses
lura - 0.5

Published by alombarte over 6 years ago

Summary of changes

This release adds 89 commits to 0.4.2 and integrates the 0.5 Milestone. Most relevant items are:

  • Custom combiners for merging the backend responses.
  • Static partial responses middleware added
  • NoOp logger
  • Add an explicit header about response completeness
  • Avoid fancy strategies when balancing a FixedSubscriber with a single host
  • Expose all the http settings values
  • Request deep copy helpers added
lura - 0.4.2

Published by alombarte over 6 years ago

Summary of changes

  • BUGFIX: Concurrent request headers overwritten
lura - 0.4.1

Published by alombarte over 6 years ago

Summary of changes

  • Recursive whitelist definition
  • Editable list of headers to pass to the backend
  • Minor improvements of code and tests
lura - 0.4

Published by alombarte over 6 years ago

Summary of changes

  • Removed ALL external dependencies and created independent components for each of them
  • Decoder and Service Discovery register system
  • Response metadata
  • Response decoder and formatter exposed
  • Custom status code handler
  • Minor handler optimizations
  • Config version upgraded
  • Server configuration extended (with timeouts and limits)
  • Now non strict REST urls are allowed
  • Request and response manipulation optimized
  • func version for all the interfaces
lura - v0.3

Published by alombarte about 7 years ago

Summary of changes:

  • Support for go 1.9
  • etcd
  • Support for the latest versions of gin
  • Extended configuration for custom proxy factories
  • Improved support for custom transport layers for the backend communication
  • More data collected from the backend responses
lura - v0.2

Published by alombarte over 7 years ago

Summary of changes:

  • Support for go 1.8
  • Improved injection for middlewares
  • Tons of new practical examples for middleware injection:
    • Gorilla
    • Mux
    • Negroni
    • Gin
    • JSON Web Token (JWT)
  • DNS SRV Service Discovery
  • Accept collections in the backend responses (as opposed to objects)
  • Router extended to allow injection of contexts
  • Integration tests on Travis
  • Custom HTTPClientFactory implementations
  • RSS decoder added