Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Nest configuration flow to handle upcoming changes to Pub/Sub provisioning #128909

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

allenporter
Copy link
Contributor

@allenporter allenporter commented Oct 21, 2024

Proposed change

Update Nest configuration flow to handle an upcoming change by Nest to move to user provisioned Pub/Sub topics. Existing Nest Device Access projects are unaffected.

Background: Currently when a user sets up the device access console, Nest provisions a Pub/Sub topic automatically. The user must must create a Subscription, which is currently handled by nest. I am working closely with the Nest engineering team while they are changing the process for how this works.

Updated flow:

  1. When setting up the Device Access console, users need to manually create a Pub/Sub topic, configure the permissions, and enter it in the Device Access console.
  2. The Device Access console will verify it is configured correctly.
  3. The new configuration flow in this PR will allow for these various user states:
    • Topic: The old way, where Nest has configured the Pub/Sub topic
    • Topic: The new way, where the user has already created a Pub/Sub topic
    • Subscription: No existing subscription exists for the topic, and it can be created
    • Subscription: The user or home-assistant has already created a subscription for the Topic.

This change does the minimal set up to support these old and new new flow combinations. We may allow further changes or clarifications (e.g. Pub/Sub topic provisioning as well) as the change is rolled out.

Rollout:

  • We will first launch this for SDM managed topics, then update the documentation for user provisioned topics once that is launched in production.
  • I've tested both scenarios manually using a pre-prod environment.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Topic selection for user created topics:
Subscriber Setup

Subscriber selection for user created subscriptions:
Topic setup

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

@allenporter allenporter marked this pull request as ready for review October 21, 2024 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant