Quick fixes from the first boot: recovery admin, upsell, warnings

- The recovery administrator (INBUXA_RECOVERY_ADMIN, or STALWART_RECOVERY_ADMIN)
  is honored only in bootstrap and recovery mode. On a configured server it's
  ignored with a startup warning. Before, it was a standing full-admin login
  for as long as the variable stayed set.
- The Enterprise upsell error is replaced by "This feature isn't available in
  INBUXA yet" for the features still to be rebuilt.
- Workspace warnings: 25 to 0. cargo fix removed the unused imports. The
  seven places where Enterprise code used to plug in keep their parameters,
  each with an inbuxa: comment naming the rebuild that uses it again. The
  antispam test's mock-server imports are back behind pending-rebuild.
This commit is contained in:
2026-09-18 11:36:44 -07:00
parent d3f0b36dd2
commit c9c761fab5
16 changed files with 51 additions and 30 deletions
@@ -20,10 +20,7 @@ use registry::{
},
types::EnumImpl,
};
use store::{
registry::{RegistryObjectCounter, RegistryQuery},
write::{BatchBuilder, RegistryClass, ValueClass, now},
};
use store::write::{BatchBuilder, RegistryClass, ValueClass, now};
use trc::AddContext;
use types::id::Id;
@@ -22,7 +22,7 @@ use registry::{
jmap::{IntoValue, JsonPointerPatch, RegistryJsonPatch},
schema::{
enums::{DeliveryErrorType, MessageFlag, RecipientFlag},
prelude::{ObjectType, Property},
prelude::Property,
structs::{
DeliveryError, QueueExpiry, QueueExpiryAttempts, QueueExpiryTtl, QueuedMessage,
QueuedRecipient, RecipientStatus, ServerResponse,
@@ -40,7 +40,7 @@ use std::str::FromStr;
use store::{
Deserialize, IterateParams, U64_LEN, ValueKey,
ahash::AHashSet,
registry::{RegistryFilterOp, RegistryQuery},
registry::RegistryFilterOp,
write::{AlignedBytes, Archive, QueueClass, ValueClass, key::DeserializeBigEndian, now},
};
use trc::AddContext;
+6 -2
View File
@@ -29,9 +29,13 @@ impl EnterpriseRegistry for Server {
}
// These are the Enterprise features INBUXA hasn't rebuilt yet
// (docs/spec/SPEC.md §4). Each type leaves this list when its rebuild
// lands. There's no edition to upgrade to, so the message says so.
Err(trc::JmapEvent::Forbidden.into_err().details(concat!(
"This feature is only available in the Enterprise edition. ",
"Obtain your trial license at https://license.stalw.art/trial."
"This feature isn't available in ",
types::brand!(),
" yet."
)))
}
}