Skip to content

Commit 098d505

Browse files
working on docs
1 parent e9e7a57 commit 098d505

6 files changed

Lines changed: 6 additions & 224 deletions

File tree

CONTRIBUTING.md

Whitespace-only changes.

DESIGN.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Design
2+
3+
See [docs/design.md](./docs/design.md)

RELEASE.md

Whitespace-only changes.

docs/changelog.md

Lines changed: 2 additions & 223 deletions
Original file line numberDiff line numberDiff line change
@@ -1,228 +1,7 @@
11
# Changelog
22

33
## [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)/
46
- 2.0.X is a development series, not intended for production. When ready,
57
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.

docs/design.md

Whitespace-only changes.

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ Planet auth utility code.
66

77
The code in this library is general auth utility code, and does not make
88
any assumptions about the environment in which it is operating. The
9-
[Planet SDK for Pythin](https://developers.planet.com/docs/pythonclient/)
9+
[Planet SDK for Python](https://developers.planet.com/docs/pythonclient/)
1010
leverages this library, and is pre-configured for the Planet Cloud Service used
1111
by customers.

0 commit comments

Comments
 (0)