|
1 | 1 | # Changelog |
2 | 2 |
|
3 | 3 | ## [Unreleased:2.0.0] - YYYY-MM-DD |
| 4 | +- 2.X is the initial public release of Planet auth libraries, targeting integration |
| 5 | + with our public Python SDK [`planet-client-python`](https://github.com/planetlabs/planet-client-python)/ |
4 | 6 | - 2.0.X is a development series, not intended for production. When ready, |
5 | 7 | the version will be bumped beyond 2.1. |
6 | | -- Prepare for public release and Python SDK integration. See [`planet-client-python`](https://github.com/planetlabs/planet-client-python). |
7 | | -- Add support for device code authorization client type and flows. |
8 | | -- Rename Auth Code flow classes to omit `PKCE` from their name. |
9 | | - PKCE is not an intrinsic part of the flow, only a best practice security |
10 | | - addition. |
11 | | - - On upgrading from 1.X.X -> 2.0.0, users will need to accommodate this class |
12 | | - renaming. The interfaces are otherwise unchanged between 1.X.X and 2.0.0, |
13 | | - and no change has been made to on disk formats of client configurations. |
14 | | - - `AuthCodePKCEClientConfig` -> `AuthCodeClientConfig` |
15 | | - - `AuthCodePKCEAuthClient` -> `AuthCodeAuthClient` |
16 | | - - `AuthCodePKCEWithClientSecretClientConfig` -> `AuthCodeWithClientSecretClientConfig` |
17 | | - - `AuthCodePKCEWithClientSecretAuthClient` -> `AuthCodeWithClientSecretAuthClient` |
18 | | - - `AuthCodePKCEWithPubKeyClientConfig` -> `AuthCodeWithPubKeyClientConfig` |
19 | | - - `AuthCodePKCEWithPubKeyAuthClient` -> `AuthCodeWithPubKeyAuthClient` |
20 | | -- Initialization methods in the `Auth` class have been revamped. |
21 | | - Application user-friendly initialization helpers now live in the `planet-auth-utils` library. |
22 | | -- Auth.initialize_from_env has been deprecated. Use `planet-auth-utils` library options. |
23 | | -- Auth.initialize_from_profile has been deprecated. Use `planet-auth-utils` library options. |
24 | | -- The `Profile` class has been removed from this library and included in the companion `planet-auth-utils` library. |
25 | | -- Added `extra` as keyword parameter providing a generic way to pass deployment |
26 | | - specific extra parameters to an OAuth request. (Such as Auth0's `organization` selection.) |
27 | | - The `extra` keyword argument takes a dict that will be appended to authentication |
28 | | - and authorization requests. |
29 | | -- `organization`, which is an Auth0 extension, has been removed from keyword parameters |
30 | | - of methods such as `login` that used it. Use the newly added `extra` keyword |
31 | | - that take a map to pass deployment specific parameters to an OAuth request. |
32 | | -- `OidcMultiIssuerValidator` has been simplified: |
33 | | - - The concept of separate "primary" and "secondary" has been removed, flattening |
34 | | - trust structure. Logging was the only material difference, and this is better |
35 | | - handled external to the library in ways specific to the use case. |
36 | | - - This change has two parts: |
37 | | - - The initialization parameters `secondaries` and `log_secondary` have been removed. |
38 | | - - The initialization parameters `primaries` and `log_primary` have been |
39 | | - renamed to `trusted` and `log_result`, respectively. |
40 | | -- Python version floor raised to 3.9 |
41 | | -- Added pyflakes, mypy, and pylint linting. Fixes from the linting. |
42 | | -- TODO: planet-auth-utils has been merged into this distribution package. |
43 | | -- Environment variable constants consolidated under `planet_auth_utils` |
44 | | - |
45 | | -- TODO: before main release, reconsider what packages should be public, |
46 | | - and which should be .internal packages. |
47 | | -- TODO: Exclude internal packages from pydocs |
48 | | -- TODO: refactor documentation to only cover public functions (or, at least |
49 | | - generate the docs separately for internal functions.) |
50 | | -- TODO: migrate from unittest -> pytest? |
51 | | -- TODO: audit where I am doing "# type: ignore" and make fixes. |
52 | | -- TODO: audit where I am doing "# pylint: disable" and make fixes. |
53 | | -- TODO: Add tests to mypy |
54 | | -- TODO: support env vars for WORKSPACE and PROJECT. (Both for core lib, and for the CLI.) |
55 | | -- TODO: Refactors "Auth Enricher" to use authenticator interface if possible. As a follow-up, |
56 | | - we should also remove unnecessary params like "client_id" from api client methods |
57 | | - and flow methods where it is not needed. |
58 | | -- TODO: clean up base authClient classes. Much of that is OIDC specific. |
59 | | -- TODO: most low level API clients have all args as mandatory. |
60 | | - Token API client does not. We should unify convention. |
61 | | -- TODO: low level API client methods largely do not have type hinting. Fix this. |
62 | | -- TODO: update documentation and examples |
63 | | -- TODO: Add SAST/DAST scanning to build apart from what the security group does. |
64 | | -- TODO: The refreshing request authenticator should record refresh time from the OAuth |
65 | | - server response over the token inspection. Tokens may be opaque. |
66 | | -- TODO: Fix mkdocs warnings, make warnings fatal. |
67 | | - |
68 | | -## 1.5.1 - 2024-04-15 |
69 | | -- Add additional library information to logs. |
70 | | - |
71 | | -## 1.5.0 - 2024-01-16 |
72 | | -- Adding support for `userinfo` endpoint. |
73 | | - |
74 | | -## 1.4.4 - 2024-01-09 |
75 | | -- Better handling of discovery indicating that an OAuth server does not |
76 | | - support particular endpoints. |
77 | | - |
78 | | -## 1.4.3 - 2023-12-20 |
79 | | -- Change the UnknownSigningKeyTokenException to be available to |
80 | | - import from top level for exception handling of |
81 | | - `TokenValidator.validate_token()`. |
82 | | - |
83 | | -## 1.4.2 - 2023-10-27 |
84 | | -- Change handling of unknown / unsupported key algorithms from the jwks |
85 | | - endpoint. You will still have a bad day if you expect such tokens |
86 | | - to work, but if jwks advertise unsupported keys that are incidental |
87 | | - to the needs of the application, it should be a warning and not a |
88 | | - failure. |
89 | | -- Make what algorithms are trusted configurable in the lower level |
90 | | - `TokenValidator` class. The higher level `OidcMultiIssuerValidator` |
91 | | - does not yet expose this ability. |
92 | | - |
93 | | -## 1.4.1 - 2023-10-17 |
94 | | -- Fix exception wrapping in `OidcMultiIssuerValidator` |
95 | | - |
96 | | -## 1.4.0 - 2023-10-17 |
97 | | -- Support for Python 3.12 |
98 | | -- Add `nested_key` option to `setStructuredLogging` to allow apps to |
99 | | - enable or disable the logging of attributes in a nested dictionary. The |
100 | | - default is currently `props` which supports apps (e.g. pda-admin) using the |
101 | | - `json_logging` module. Apps that don't want nesting can disable it by using |
102 | | - `nested_key=None`. |
103 | | - |
104 | | -## 1.3.2 - 2023-09-28 |
105 | | -- Updated examples and documentation. |
106 | | -- Bugfix: Confidential clients were not authenticating when using a refresh |
107 | | - token. This has been fixed. |
108 | | - |
109 | | -## 1.3.1 - 2023-09-25 |
110 | | -- A few small changes to support the needs of Planet internal developers: |
111 | | - - Made the static helper method `prep_pkce_auth_payload` public on the low |
112 | | - level `AuthorizationApiClient` class. This allows this class to be |
113 | | - used as a helper in applications that are not utilizing all of the |
114 | | - higher level functions of the library. Use with caution, since |
115 | | - this was not the primary use case the library was developed for. |
116 | | - - Make the low level API clients initialized under `OidcAuthClient` |
117 | | - non-private, so they may be leveraged in off-label use as helpers. |
118 | | - Using the lower level clients in this way should be done with caution, |
119 | | - since it removes the context the higher level `OidcAuthClient` provides. |
120 | | - Most notably, when the client is a confidential client, the handling |
121 | | - of client authentication will be lost. |
122 | | - |
123 | | -## 1.3.0 - (Unstable development release) |
124 | | -- Unstable development release |
125 | | - |
126 | | -## 1.2.14 - 2023-09-22 |
127 | | -- Log the scope claims seen in access tokens |
128 | | - |
129 | | -## 1.2.13 - 2023-09-11 |
130 | | -- Hush logging of the "sub" token field. For better or worse, this contains user email |
131 | | - addresses at Planet, which might be considered PII. Log the pl_principal claim instead. |
132 | | - |
133 | | -## 1.2.12 - 2023-09-08 |
134 | | -- Add the ability to log either using a structured json object, or as a string. |
135 | | -- Documentation and example improvements. |
136 | | - |
137 | | -## 1.2.7 - 1.2.11 - (Unstable development releases) |
138 | | -- Unstable development versions. |
139 | | - |
140 | | -## 1.2.6 - 2023-09-07 (Retracted) |
141 | | -- This release was retracted. |
142 | | - |
143 | | -## 1.2.5 - 2023-09-07 |
144 | | -- More unit tests. |
145 | | - |
146 | | -## 1.2.4 - 2023-09-06 |
147 | | -- Update example in the docs. |
148 | | - |
149 | | -## 1.2.3 - 2023-09-02 |
150 | | -- Change the default to log the validation of tokens from primary (non-deprecared) issuers. |
151 | | -- Fix a bug where when primary validation was disabled, logging would still happen, and happen |
152 | | - incorrectly as "warning" and as a deprecated issuer. |
153 | | - |
154 | | -## 1.2.2 - 2023-08-29 |
155 | | -- Allow the py logger to be set to None to quiet logging entirely. |
156 | | - |
157 | | -## 1.2.1 - 2023-08-25 |
158 | | -- Changes to logging format to support dashboard. Logs now are structured json with an enumerated |
159 | | - event type to facilitate dashboards from logs. |
160 | | -- Refactor all logging to use the wrapper class AuthLogger |
161 | | -- Exceptions have been refactored to improve hierarchy, and allow for more bundling of data. |
162 | | - |
163 | | -## 1.2.0 |
164 | | -- _Internal Development Version_ |
165 | | - |
166 | | -## 1.1.0 - 2023-08-15 |
167 | | -- Add support for authenticating to a specific organization. |
168 | | - This is supported by Auth0's authorization servers. |
169 | | - |
170 | | -## 1.0.0 - 2023-08-02 |
171 | | -- Align log messages with the parallel GoLang library so that they may feed a common dashboard. |
172 | | -- It's time to call this lib released, and leave "version 0" behind. |
173 | | -- Minor documentation fixes. |
174 | | - |
175 | | -## 0.9.0 - 2023-07-19 |
176 | | -- Remove dependency on constants defining specific environments from core library code. |
177 | | - This has a number of implications: |
178 | | - - Built-in profiles are no longer a property of the core library. The job of deciding |
179 | | - default behavior is left to the application. This manifests in |
180 | | - [Auth.initialize_from_profile][planet_auth.Auth.initialize_from_profile] |
181 | | - and [Profile][planet_auth.Profile] factory methods |
182 | | - no longer understanding the previously understood profiles `default`, `staging`, |
183 | | - `legacy`, or `none`. |
184 | | - - Handling of initialization from environment variables is no longer implicit. |
185 | | - Applications wishing to initialize from environment variables should explicitly call |
186 | | - [Auth.initialize_from_env][planet_auth.Auth.initialize_from_env] |
187 | | -- Omit null/None values when writing json objects. |
188 | | - |
189 | | -## 0.8.1 - 2023-07-14 |
190 | | -- Logging updates in [planet_auth.OidcMultiIssuerValidator][] for better observability. |
191 | | - |
192 | | -## 0.8.0 - 2023-06-13 |
193 | | -- Add enforcement checks to OAuth access token validators for checking scope grants. |
194 | | - |
195 | | -## 0.7.1 - 2023-06-10 |
196 | | -- CI/CD change to automatically drop git tags when publishing a package to Pypi servers |
197 | | - |
198 | | -## 0.7.0 - 2023-05-22 |
199 | | -- Split the CLI off into a package that is separate from the auth library. |
200 | | - |
201 | | -## 0.6.4 - 2023-05-13 |
202 | | -- Add `X-Planet-App` header to outbound requests. When acting as a auth server client, |
203 | | - this will always be set. When acting as a resource server client helper, this |
204 | | - will only be set if it has not already been set. |
205 | | - |
206 | | -## 0.6.3 - 2023-04-20 |
207 | | -- Update frozen requirements for docker build |
208 | | -- Minor documentation fixes |
209 | | - |
210 | | -## 0.6.2 - 2023-03-27 |
211 | | -- `profile create` wizard basic functionality, and supporting changes to core library classes. |
212 | | - |
213 | | -## 0.6.1 - 2023-03-24 |
214 | | -### Changes |
215 | | -- Fixes to embedded `plauth` command |
216 | | -- Updates and fixes to examples. |
217 | | -- Debug log updates around file I/O. |
218 | | -- Profile command enhancements from another old working branch (incomplete) |
219 | | - |
220 | | -## 0.6.0 - 2023-03-21 |
221 | | -### Changes |
222 | | -- Changed the client config field `default_request_scopes` to `scopes` for OIDC auth client configs. |
223 | | -- Changed the client config field `default_request_audiences` to `audiences` for OIDC auth client configs. |
224 | | -- Clarifies the behavior of [planet_auth.OidcAuthClient][] with respect the handling of the expected audience |
225 | | - handling and configuration for local access token validation. |
226 | | -- Changes to [planet_auth.OidcMultiIssuerValidator][] interface to better accommodate OAuth providers |
227 | | - with different back-end models. This also makes the configuration of auth clients used for validator |
228 | | - use cases more intuitive. |
0 commit comments