...

Text file src/github.com/emissary-ingress/emissary/v3/CHANGELOG.old-pro.md

Documentation: github.com/emissary-ingress/emissary/v3

     1# Ambassador Pro CHANGELOG
     2
     3DO NOT EDIT THIS FILE FOR ANY NEW DEVELOPMENT.
     4
     5This is the CHANGELOG for the old "Ambassador Pro" product that was an
     6add-on to the Ambassador API Gateway.  In 1.0.0, Ambassador Pro and
     7the Ambassador API Gateway were merged in to a combined "Ambassador
     8Edge Stack" product.
     9
    10## 1.0.0 (2020-01-15)
    11
    12Behavior:
    13
    14 * Developer portal no longer requires the /openapi Mapping
    15 * Renamed environment variable APRO_DEVPORTAL_CONTENT_URL to DEVPORTAL_CONTENT_URL
    16 * Feature: Developer portal can check out a non-default branch. Control with DEVPORTAL_CONTENT_BRANCH env var
    17 * Feature: Developer portal can use a subdir of a checkout. Control with DEVPORTAL_CONTENT_DIR env var
    18 * `apictl traffic initialize` no longer waits for the traffic-proxy to become ready before exiting.
    19 * Feature: Developer portal will show swagger documentation for up to five services (or more with appropriate license)
    20 * Feature: local-devportal is now a standalone go binary with no external dependencies
    21 * `v1` license keys were not being used so augment them to include emails
    22 * The OAuth2 redirection endpoint has moved from `/callback` to `/.ambassador/oauth2/redirection-endpoint`.  Migrating Pro users will need to notify thier IDP of the change.
    23
    24Other:
    25
    26 * `amb-core` and `amb-sidecar` have been merged in to a combined `aes` which is based on Ambassador OSS [version TBD].
    27 * `login-gate-js`content has been updated for a clearer first time experience.
    28
    29## 0.11.0 (2019-12-10)
    30
    31Configuration:
    32
    33 * `JWT` Filter now has a `realm` setting to configure the realm mentioned in `WWW-Authenticate` of error responses.
    34 * Feature: `JWT` Filter now has a FilterPolicy argument `scope` to preform `draft-ietf-oauth-token-exchange`-compatible Scope validation.
    35 * Feature: `OAuth2` Filter now has a `.insteadOfRedirect.filters` FilterPolicy argument that lets you provide a list of filters to run; as if you were listing them directly in a FilterPolicy.
    36 * Feature: `OAuth2` Filter now has a `extraAuthorizationParameters` setting to manually pass extra parameters to the IDP's authorization endpoint.
    37 * Feature: `OAuth2` Filter now has a `accessTokenJWTFilter` setting to use a `JWT` filter for access token validation when `accessTokenValidation: jwt` or `accessTokenValidation: auto`.
    38
    39Behavior:
    40
    41 * Feature: `JWT` Filter now generates RFC 6750-compliant responses with the `WWW-Authenticate` header set.
    42
    43Other:
    44
    45 * Update Ambassador Core from Ambassador 0.85.0 (Envoy 1.11+half-way-to-1.12) to 0.86.0 (Envoy 1.12.2)
    46
    47## 0.10.0 (2019-11-11)
    48
    49Configuration:
    50
    51 * Feature: `FilterPolicy` may now set `ifRequestHeader` to only apply a `Filter` to requests with appropriate headers.
    52 * Feature: `FilterPolicy` may now set `onDeny` and `onAllow` to modify how `Filter`s chain together.
    53 * Feature: `JWT` Filter `injectRequestHeaderse` templates can now read the incoming HTTP request headers.
    54 * Feature: `JWT` Filter `errorResponse` can now set HTTP headers of the error response.
    55 * Beta feature: `OAuth2` Filter can now be configured to receive OAuth client credentials in the HTTP request header, and use them to obtain a client credentials grant.  This is only currently tested with Okta.
    56
    57Behavior:
    58
    59 * The `OAuth2` filter's XSRF protection now works differently.  You should use the `ambassador_xsrf.{name}.{namespace}` cookie instead of the `ambassador_session.{name}.{namespace}` cookie for XSRF-protection purposes.
    60
    61## 0.9.1 (2019-10-22)
    62
    63Configuration:
    64
    65 * The `JWT` and `OAuth2` Filter types support `renegotiateTLS`
    66 * The `JWT` Filter now has an `errorResponse` argument that allows templating the filter's error response.
    67
    68Other:
    69
    70 * Update Ambassador Core from Ambassador 0.83.0 to 0.85.0
    71
    72## 0.9.0 (2019-10-08)
    73
    74Configuration
    75
    76 * The `OAuth2` filter now has a FilterPolicy argument `insteadOfRedirect` that can specify a different action to perform than redirecting to the IDP.
    77
    78Behavior:
    79
    80 * Feature: Developer portal URL can be changed by the user. Adjust the `ambassador-pro-devportal` `Mapping` CRD (or annotation) by changing the `prefix` to desired prefix and changing the `rewrite` to `/docs/`. The `ambassador-pro-devportal-api` can not be adjusted yet.
    81 * Feature: The `OAuth2` filter can now perform OIDC-session RP-initiated logout when used with an identity provider that supports it.
    82 * Bugfix: Properly return a 404 for unknown paths in the amb-sidecar; instead of serving the index page; this could happen if the devportal Mapping is misconfigured.
    83 * Bugfix: Fix the "loaded filter" log info message.
    84 * Bugfix: Don't publish the "dev-portal-server" Docker image; it was obviated by "amb-sidecar" in 0.8.0.
    85 * Bugfix: The `JWT` Filter is no longer case-sensitive with the auth-scheme (`Bearer` vs `bearer`)
    86 * Bugfix: The `JWT` Filter no longer accepts authorizations that are missing an auth-scheme
    87
    88Other:
    89
    90 * Update Ambassador Core from Ambassador 0.75.0 to 0.83.0
    91 * Incorporate the Envoy 1.11.2 security patches in Ambassador Core
    92 * Fast iteration on Developer Portal styling and content using a docker image inside a local checkout of Developer Portal content repo (see reference doc for usage guide)
    93
    94## 0.8.0 (2019-09-16)
    95
    96Configuration:
    97
    98 * `amb-sidecar` now takes additional configuration related to the developer portal.
    99
   100Behavior:
   101
   102 * Feature: The developer portal is now in "beta", and incorporated into amb-sidecar.
   103 * Bugfix: The `External` Filter no longer erroneously follows redirects.
   104 * Bugfix: Fixed a case-folding bug causing the `JWT` Filter to be inoperable.
   105 * Enhancement: Errors in `Filter` resource definitions are now recorded and included in error messages.
   106
   107## 0.7.0 (2019-08-29)
   108
   109Configuration:
   110
   111 * `amb-sidecar`: The default value of `USE_STATSD` has changed from `true` to `false`.
   112 * Bump license key schema v0 → v1.  The developer portal requires a v1 license with the "devportal" feature enabled.  Some future version of the other functionality will drop support for v0 license keys.
   113 * The `JWT` Filter can now inject HTTP request headers; configured with the `injectRequestHeaders` field.
   114
   115Behavior:
   116
   117 * Fixed a resource leak in dev-portal-server
   118
   119Other:
   120
   121 * There is now a build of Ambassador with Certified Envoy named "amb-core".
   122
   123## 0.6.0 (2019-08-05)
   124
   125Configuration:
   126
   127 * The CRD field `ambassador_id` may now be a single string instead of a list of strings (this should have always been the case, but there was a bug in the parser).
   128 * Everything is now on one port: `APRO_HTTP_PORT`, which defaults to `8500`.
   129 * `LOG_LEVEL` no longer exists; everything obeys `APP_LOG_LEVEL`.
   130 * The meaning of `REDIS_POOL_SIZE` has changed slightly; there are no longer separate connection pools for ratelimit and filtering; the maximum number of connections is now `REDIS_POOL_SIZE` instead of 2×`REDIS_POOL_SIZE`.
   131 * The `amb-sidecar` RateLimitService can now report to statsd, and attempts to do so by default (`USE_STATSD`, `STATSD_HOST`, `STATSD_PORT`, `GOSTATS_FLUSH_INTERVAL_SECONDS`).
   132
   133Behavior:
   134
   135 * Now also handles gRPC requests for `envoy.service.auth.v2`, in addition to `envoy.service.auth.v2alpha`.
   136 * Log a stacktrace at log-level "debug" whenever the HTTP client encounters an error.
   137 * Fix bug where the wrong key was selected from a JWKS.
   138 * Everything in amb-sidecar now runs as a single process.
   139
   140## 0.5.0 (2019-06-21)
   141
   142Configuration:
   143
   144 * Redis is now always required to be configured.
   145 * The `amb-sidecar` environment variables `$APRO_PRIVATE_KEY_PATH` and `$APRO_PUBLIC_KEY_PATH` are replaced by a Kubernetes secret and the `$APRO_KEYPAIR_SECRET_NAME` and `$APRO_KEYPAIR_SECRET_NAMESPACE` environment variables.
   146 * If the `$APRO_KEYPAIR_SECRET_NAME` Kubernetes secret (above) does not exist, `amb-sidecar` now needs the "create" permission for secrets in its ClusterRole.
   147 * The `OAuth2` Filter now ignores the `audience` field setting.  I expect it to make a come-back in 0.5.1 though.
   148 * The `OAuth2` Filter now acts as if the `openid` scope value is always included in the FilterPolicy's `scopes` argument.
   149 * The `OAuth2` Filter can verify Access Tokens with several different methods; configured with the `accessTokenValidation` field.
   150
   151Behavior:
   152
   153 * The `OAuth2` Filter is now strictly compliant with OAuth 2.0.  It is verified to work properly with:
   154   - Auth0
   155   - Azure AD
   156   - Google
   157   - Keycloak
   158   - Okta
   159   - UAA
   160 * The `OAuth2` Filter browser cookie has changed:
   161   - It is now named `ambassador_session.{{filter_name}}.{{filter_namespace}}` instead of `access_token`.
   162   - It is now an opaque string instead of a JWT Access Token.  The Access Token is still available in the injected `Authorization` header.
   163 * The `OAuth2` Filter will no longer consider a user-agent-provided `Authorization` header, it will only consider the cookie.
   164 * The `OAuth2` Filter now supports Refresh Tokens; they must be requested by listing `offline_access` in the `scopes` argument in the FilterPolicy.
   165 * The `OAuth2` Filter's `/callback` endpoint is no longer vulnerable to XSRF attacks
   166 * The Developer Portal file descriptor leak is fixed.
   167
   168Other:
   169
   170 * Open Source dependency license compliance is now automated as part of the release machinery.  Source releases for the Docker images are now present in the images themselves at `/*.opensource.tar.gz`.
   171
   172## 0.4.3 (2019-05-15)
   173
   174 * Add the Developer Portal (experimental; no documentation available yet)
   175 * `apictl traffic initialize`: Correctly handle non-`default` namespaces
   176 * `app-sidecar`: Respect the `APP_LOG_LEVEL` environment variable, same as `amb-sidecar`
   177
   178## 0.4.2 (2019-05-03)
   179
   180 * Turn down liveness and readiness probe logging from "info" to "debug"
   181
   182## 0.4.1 (2019-04-23)
   183
   184 * Add liveness and readiness probes
   185
   186## 0.4.0 (2019-04-18)
   187
   188 * Moved all of the default sidecar ports around; YAML will need to be adjusted (hence 0.4.0 instead of 0.3.2).  Additionally, all of the ports are now configurable via environment variables
   189
   190   | Purpose          | Variable       | Old  | New  |
   191   | -------          | --------       | ---  | ---  |
   192   | Auth gRPC        | APRO_AUTH_PORT | 8082 | 8500 |
   193   | RLS gRPC         | GRPC_PORT      | 8081 | 8501 |
   194   | RLS debug (HTTP) | DEBUG_PORT     | 6070 | 8502 |
   195   | RLS HTTP ???     | PORT           | 7000 | 8503 |
   196
   197 * `apictl` no longer sets an imagePullSecret when deploying Pro things to the cluster (since the repo is now public)
   198
   199## 0.3.1 (2019-04-05)
   200
   201 * Support running the Ambassador sidecar as a non-root user
   202
   203## 0.3.0 (2019-04-03)
   204
   205 * New Filter type `External`
   206 * Request IDs in the Pro logs are the same as the Request IDs in the Ambassador logs
   207 * `OAuth2` Filter type supports `secretName` and `secretNamespace`
   208 * Switch to using Ambassador OSS gRPC API
   209 * No longer necessary to set `allowed_request_headers` or `allowed_authorization_headers` for `Plugin` Filters
   210 * RLS logs requests as `info` instead of `warn`
   211 * Officially support Okta as an IDP
   212
   213## 0.2.5 (2019-04-02)
   214
   215(0.3.0 was initially tagged as 0.2.5)
   216
   217## 0.2.4 (2019-03-19)
   218
   219 * `JWT` and `OAuth2` Filter types support `insecureTLS`
   220 * `OAuth2` now handles JWTs with a `scope` claim that is a JSON list of scope values, instead of a JSON string containing a whitespace-separated list of scope values (such as those generated by UAA)
   221
   222## 0.2.3 (2019-03-13)
   223
   224 * Consul Connect integration no longer requires a license key
   225
   226## 0.2.2 (2019-03-11)
   227
   228 * Fix Consul certificate rotation
   229
   230## 0.2.1 (2019-03-08)
   231
   232 * Move the AuthService from port 8080 to 8082, and make it configurable with `APRO_AUTH_PORT`
   233
   234## 0.2.0 (2019-03-04)
   235
   236 * Have everything require license keys
   237 * Differentiate between components when phoning-home to Scout
   238 * Phone-home to kubernaut.io/scout, not metriton.datawire.io/scout
   239 * Fix bug where `apictl traffic inject` wiped existing `imagePullSecrets`
   240 * Support `AMBASSADOR_ID`, `AMBASSADOR_SINGLE_NAMESPACE`, and `AMBASSADOR_NAMESPACE`
   241 * Log format changed
   242 * OIDC support
   243 * Replace `Tenant` and `Policy` CRDs with `Filter` and `FilterPolicy` CRDs
   244 * Add JWT validation filter
   245 * Add `apro-plugin-runner` (previously was in a separate OSS git repo)
   246
   247## 0.1.2 (2019-01-24)
   248
   249 * More readable logs in the event of a crash
   250 * `apictl traffic` sets `imagePullSecret`
   251 * Have `apictl` also look for the license key in `~/.config/` as a fallback on macOS.  The paths it now looks in, from highest to lowest precedence, are:
   252    - `$HOME/Library/Application Support/ambassador/license-key` (macOS only)
   253    - `${XDG_CONFIG_HOME:-$HOME/.config}/ambassador/license-key`
   254    - `$HOME/.ambassador.key`
   255
   256## 0.1.1 (2019-01-23)
   257
   258 - First release with combined rate-limiting and authentication.

View as plain text