Summary
FixedDatabaseHandler::list_subscription_databases() (and the harmonized list() alias) returns AccountFixedSubscriptionDatabases, which is missing the subscription field. The wrapper deserializes successfully but contains no databases — the call is effectively broken.
Expected behavior
Should mirror the Pro side. AccountSubscriptionDatabases (src/flexible/databases.rs:72-85) wraps a subscription: Vec<SubscriptionDatabasesInfo> containing the actual databases. Fixed should follow the same shape.
Actual behavior
AccountFixedSubscriptionDatabases (src/fixed/databases.rs:62-69) only declares accountId and links; the subscription array is missing entirely. Real Cloud responses include it (see #40 for the spec-vs-actual delta tracking).
Impact
Listing databases under a Fixed/Essentials subscription returns an empty result set. Any caller relying on the typed handler for fixed-plan database enumeration is silently broken.
Relevant code
src/fixed/databases.rs:62-69 — AccountFixedSubscriptionDatabases struct
src/fixed/databases.rs — list_subscription_databases and list (harmonized alias)
- For comparison:
src/flexible/databases.rs:72-85 — Pro side, correct shape
Suggested fix
Add the missing nesting:
```rust
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountFixedSubscriptionDatabases {
pub account_id: i32,
pub subscription: Vec,
pub links: Vec,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FixedSubscriptionDatabasesInfo {
pub subscription_id: i32,
pub databases: Vec,
pub links: Vec,
}
```
The list() alias should then unwrap to Vec<FixedDatabase> like the Pro side does.
Acceptance criteria
References
Summary
FixedDatabaseHandler::list_subscription_databases()(and the harmonizedlist()alias) returnsAccountFixedSubscriptionDatabases, which is missing thesubscriptionfield. The wrapper deserializes successfully but contains no databases — the call is effectively broken.Expected behavior
Should mirror the Pro side.
AccountSubscriptionDatabases(src/flexible/databases.rs:72-85) wraps asubscription: Vec<SubscriptionDatabasesInfo>containing the actual databases. Fixed should follow the same shape.Actual behavior
AccountFixedSubscriptionDatabases(src/fixed/databases.rs:62-69) only declaresaccountIdandlinks; thesubscriptionarray is missing entirely. Real Cloud responses include it (see #40 for the spec-vs-actual delta tracking).Impact
Listing databases under a Fixed/Essentials subscription returns an empty result set. Any caller relying on the typed handler for fixed-plan database enumeration is silently broken.
Relevant code
src/fixed/databases.rs:62-69—AccountFixedSubscriptionDatabasesstructsrc/fixed/databases.rs—list_subscription_databasesandlist(harmonized alias)src/flexible/databases.rs:72-85— Pro side, correct shapeSuggested fix
Add the missing nesting:
```rust
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountFixedSubscriptionDatabases {
pub account_id: i32,
pub subscription: Vec,
pub links: Vec,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FixedSubscriptionDatabasesInfo {
pub subscription_id: i32,
pub databases: Vec,
pub links: Vec,
}
```
The
list()alias should then unwrap toVec<FixedDatabase>like the Pro side does.Acceptance criteria
AccountFixedSubscriptionDatabasesincludes thesubscriptionfieldFixedDatabaseHandler::list()returns a non-emptyVec<FixedDatabase>when the subscription has databasesReferences