feat(saved): saved, shared, starred, scheduled and widget analyses, export, SQL handoff
Extension 1.4.0: saved analyses of every kind re-run as the viewer (fields they cannot analyze are dropped), owner-or-shared READ through core record locks with owner-only writes (and a database CHECK so a private row can never lose its read owner), personal stars, schedules that run as the owner and mail only recipients who could run the analysis themselves, CSV/XLSX export, the SQL Workbench handoff, an analysis dashboard widget, and an Analyses home built from standard widgets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43c7571864
commit
d2c9871d98
42 files changed
+3786
-296
No files matched your search
@@ -426,4 +426,59 @@ public class DataAnalysisQBitConfig implements QBitConfig
|
||||
ownerSessionSupplier = supplier;
|
||||
return (this);
|
||||
}
|
||||
|
||||
private String messagingProviderName;
|
||||
private String fromAddress;
|
||||
private transient java.util.function.Function<String, String> recipientAddressSupplier;
|
||||
|
||||
/*******************************************************************************
|
||||
** Core messaging provider used for scheduled delivery.
|
||||
*******************************************************************************/
|
||||
public String getMessagingProviderName()
|
||||
{
|
||||
return (messagingProviderName);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Select the host's configured SMTP or SES provider.
|
||||
*******************************************************************************/
|
||||
public DataAnalysisQBitConfig withMessagingProviderName(String value)
|
||||
{
|
||||
messagingProviderName = value;
|
||||
return (this);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Verified sender address supplied by the host.
|
||||
*******************************************************************************/
|
||||
public String getFromAddress()
|
||||
{
|
||||
return (fromAddress);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Set the scheduled email sender.
|
||||
*******************************************************************************/
|
||||
public DataAnalysisQBitConfig withFromAddress(String value)
|
||||
{
|
||||
fromAddress = value;
|
||||
return (this);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Resolve a user id to its current email; never treat recipients as addresses.
|
||||
*******************************************************************************/
|
||||
public java.util.function.Function<String, String> getRecipientAddressSupplier()
|
||||
{
|
||||
return (recipientAddressSupplier);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Bind the host directory's user-to-email lookup.
|
||||
*******************************************************************************/
|
||||
public DataAnalysisQBitConfig withRecipientAddressSupplier(java.util.function.Function<String, String> value)
|
||||
{
|
||||
recipientAddressSupplier = value;
|
||||
return (this);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user