corvus-dotnet / corvus-dotnet/Corvus.Tenancy

Consider providing common mechanism for tenanted services to report tenant misconfiguration

Open
#454 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
C#
Stars
6
Forks
1
PR merge metrics
No merged PRs in 30d

Description

In situations where configuration for a particular service in a particular tenant is wrong, it can be hard to diagnose, because the problems might be nested a few levels deep. (E.g., `Marain.Workflow` uses `Marain.Operations`, and in a situation where the delegated configuration for operations is wrong, it'll be `Marain.Workflow` that receives the error when it tries to use `Marain.Operations`.)

In practice, working out what has happened in these cases has proven tricky.

It might be possible to make it easier to understand by introducing an exception type to represent this broad kind of problem, e.g. `TenantConfigurationException`. This would be thrown by code that understands the configuration requirements for a particular piece of configuration. For example, `BlobContainerSourceWithTenantLegacyTransition` knows the (somewhat subtle) rules for whether tenanted storage configuration is correct. It could throw an exception indicating unambiguously that we have a tenant which is misconfigured.

This would open the door for higher-level code such as Menes to be able to recognize this exception, and provide more helpful information back to callers than we currently get. (Right now, we just get a generic 500 failure.)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by examining the tenant-configuration rules in BlobContainerSourceWithTenantLegacyTransition and how errors propagate to higher-level code such as Menes. Determine the exception contract and reporting behavior needed for callers to identify tenant misconfiguration rather than receiving a generic 500. Done requires an agreed mechanism that works across tenanted services.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.