feat(multitenant)! Account prefixed API topics and manifest storage #133
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Feature or Problem
This PR ensures we are storing and querying manifests based on an account prefix if running in multitenant mode. This ensures that accounts can only access and modify manifests that are specifically bound to that account, rather than simply using a global lattice ID.
Due to possible edge cases, it's still recommended to keep lattice prefixes globally unique between accounts, as there are not e2e tests at this time to verify that functionality works without issues. This PR at least implements the portion of that that constrains manifests from conflicting between accounts.
Related Issues
#132
Release Information
v0.5.0
Consumer Impact
Multitenancy hasn't released yet so this shouldn't affect consumers, however they will need to examine the account prefixed topic if manually looking up manifests in NATS.
Testing
Built on platform(s)
Tested on platform(s)
Unit Test(s)
Modified a few unit tests that were hitting deprecation warnings
Acceptance or Integration
Will have to modify the e2e tests to properly import/export account prefixes
Manual Verification
Using the multitenant docker compose, I was able to verify that if I put a manifest using one account, I cannot query that manifest in another account even if I use the correct lattice prefix 😄