- Allow users to ignore a specific WorkspaceSharingAudit "not in app" record.
- Restructure audits by moving them to their own sub-app (
anvil_consortium_manager.auditor
) - Allow users to ignore a specific ManagedGroupMembershipAudit "not in app" record
- Allow a user to link an Account that is not or has never been linked to another user.
- Bugfix:
run_anvil_audit
now raises aCommandException
if an API call fails. - Bugfix: use the workspace form specified in the workspace adapter when cloning a workspace.
- Move most account settings into the Account adapter
- Allow the user to set a custom success message to be displayed after they verify an AnVIL account
- Move the setting to specify the template for account link verification emails into the AccountAdapter
- Allow users to specify the template for the WorkspaceListByType view in the WorkspaceAdapter
- Add an adapter for ManagedGroups that lets the user set the table class to display as well as an
after_anvil_create
method. - Add model class checks to adapter methods where appropriate.
- Drop support for MariaDB 10.4.
- Drop support for Python 3.8.
- Add a new
extra_pills
block to the workspace detail template, which allows users to add additional pills/badges to the workspace detail page for a given workspace type.
- Add AccountUserArchive model to the admin interface.
- Drop support for Django 3.2.
- Add support for Django 5.0.
- Add
convert_mariadb_uuid_fields
command to convert UUID fields for MariaDB 10.7+ and Django 5.0+. See the documentation of this command for more information. - Move app settings to their own file, and set defaults for some settings.
- Add additional customization for WorkspaceAdapters. Users can override the
before_anvil_create
,after_anvil_create
, andafter_anvil_import
methods to run custom code before or after creating or after importing a workspace.
- Do not track previous groups for inactive accounts.
- Add an audit error if any group membership records exist for inactive accounts.
- Add the ability to unlink a user from an account.
- Maintenance: specify different numpy version requirement for python 3.12.
- Add customizeable
get_extra_detail_context_data
method for workspace adapters. Users can override this method to provide additional context data on a workspace detail page. - Add filtering by workspace type to the admin interface.
- Set max_length for
ManagedGroup
andWorkspace
models to match what AnVIL allows. - Track requester pays status for
Workspace
objects.
- Add docs dependencies to hatch via pyproject.toml.
- Add requests as a direct dependency instead of as an extra to google-auth.
- Rename existing tables to include "Staff" in the name, in preparation for adding tables that are viewable by non-staff users.
- Rename the
list_table_class
property of Workspace adapters tolist_table_class_staff_view
. - Add a new required
list_table_class_view
property to Workspace adapters. This table will be shown to users with anvil_consortium_manager_view permission, andlist_table_class_staff_view
will be shown to users with anvil_consortium_manager_staff_view permission. - Allow users with anvil_consortium_manager_view permission to see the
WorkspaceDetail
,WorkspaceList
,WorkspaceListByType
, andWorkspaceLanding
views.
- Bugfix: Fix
WorkspaceClone
andWorkspaceImport
views to work with aWorkspaceData
model that has a second foreign key toWorkspace
.
- Switch to using
pyproject.toml
where possible. - Use hatch for backend building.
- Rename permissions and associated auth mixins.
- anvil_project_manager_edit -> anvil_consortium_manager_staff_edit
- anvil_project_manager_view -> anvil_consortium_manager_staff_view
- anvil_project_manager_limited_view -> anvil_consortium_manager_view
AnVILConsortiumManagerEditRequired
->AnVILConsortiumManagerStaffEditRequired
AnVILConsortiumManagerViewRequired
->AnVILConsortiumManagerStaffViewRequired
AnVILConsortiumManagerLimitedViewRequired
->AnVILConsortiumManagerViewRequired
- Bugfix: Allow Workspace Data objects to have a second foreign key to
Workspace
. - Remove ACM Home link from navbar.
- Add filtering in list views.
- Bugfix: Print the correct number of "ok" instances in audit emails. 0.18 introduced a bug where the email included "0 instance(s) verified even if there was more than one verified instance.
- Bugfix: ManagedGroupMembershipAudit does not unexpectedly show errors for deactivated accounts that were in the group before they were deactivated.
- Bugfix: ManagedGroupMembershipAudit now raises the correct exception when instantiated with a ManagedGroup that is not managed by the app.
- Bugfix: ManagedGroupAudit does not report missing groups where the app is only a member.
- Bugfix: Allow groups not managed by the app to be added as child groups of another group, and allow workspaces to be shared with them.
- Include a workspace_data_object context variable for the
WorkspaceDetail
andWorkspaceUpdate
views. - Refactor auditing classes.
- Add ability to specify a custom
Workspace
form in the workspace adapter. - Add informational text to tables on Detail pages.
- Add a new "Limited view" permission. This permission is not yet used anywhere in the app, but can be used by projects using the app (e.g., to show a custom page to users with this permission).
- Import ManagedGroup membership from AnVIL when importing a ManagedGroup and the members already have records in the app.
- Sort available workspaces alphabetically in the
WorkspaceImport
view. - Synchronize dropdown items in navbar and links in cards on home page.
- Bugfix: Move autocomplete query if statement to adapter methods so that adapter methods can handle forwarded values even when a query is not passed.
get_autocomplete_queryset
methods should be updated to process the query parameter.
- Bugfix: Fix failing ManagedGroup.anvil_audit_membership when a group is both a member of and admin of another group.
- Bugfix: Display "not in app" table correctly in emailed AnVIL audit report.
- Bugfix: correctly import AnVIL groups when the service account is both a member and an admin of the group.
- Bugfix: Fix failing ManagedGroup.anvil_audit_memership when the service account is not directly an admin of the group (but is via membership in another group).
- The
run_anvil_audit
management command now sends html emails instead of only text emails. - Move view mixins to their own source file (
viewmixins.py
).
- Add a new permission,
anvil_consortium_manager_account_link
, which is required for a user to be able to link their AnVIL account. - Handle groups that the app service account is not part of when auditing ManagedGroups.
- Add information about deactivating and reactivating Accounts to documentation user guide.
- Sort workspaces by name in the WorkspaceTable.
- Remove billing project from the workspace name in WorkspaceTable, since it has its own column already.
- Add a view to autocomplete by workspace type.
- Track whether an AnVIL workspace is locked or not.
- Add a new workspace landing page showing the registered workspace types.
- Move workspace type links from the navbar to a new workspace landing page, because the navbar gets unwieldy when there are large number of registered workspace types.
- Add a new required "description" field for Workspace adapters.
- Bugfix: require records with
access=OWNER
to havecan_compute=True
forWorkspaceGroupSharing
objects. - Add information about deleting GroupAccountMembership, GrooupGroupMembership, and WorkspaceGroupSharing records to the documentation User guide.
- Add the
run_anvil_audit
management command to run AnVIL audits.
- Add form Mixin class that adds select2-bootstrap-5-theme to form media.
- Support Django 4.1.*.
- Fix broken links in group membership detail pages.
- Add last update date to GroupGroupMembership, GroupAccountMembership, and WorkspaceGroupSharing tables.
- Load workspace data form media in workspace editing templates.
- Bugfix: Accessible workspaces for an account only includes workspaces that are shared with groups they are in.
- Add a view to show a graph-based visualization of ManagedGroups.
- Show a graph-based visualization of group relationships in the ManagedGroupDetail view.
- Copy notebooks when cloning a workspace.
- Links to workspaces on AnVIL open in a new tab.
- Prevent users from linking a Google service account to their user account.
- When importing a workspace, create
WorkspaceGroupSharing
records if the workspace is shared with a group and that group is already in the app.
- Update
anvil_api
to use Rawls and Sam APIs for most API calls. These APIs were recommended over the Firecloud API by Terra support. - Modify
AnVILAPIMockTestMixin
to use theresponses.RequestMock
object instead of just adding toresponses
. - In tests, require that all registered requests are actually requested.
- Add a default
__str__
method toBaseWorkspaceData
. - Add a django-simple-history
history
field toBaseWorkspaceData
. Any model inheriting fromBaseWorkspaceData
to have history, which is consistent with other models in the app. - Add the
Account.get_accessible_workspaces
method. - Show the workspaces accessible to an Account in the
AccountDetail
view.
- Bug fix: Do not allow
ManagedGroup
orWorkspace
instances to be deleted if referenced in another model by a protected foreign key. - Add a customizable adapter for
Accounts
. This requires setting theANVIL_ACCOUNT_ADAPTER
setting in your settings file. - Various UI updates: the detail box on object detail pages now uses a description list instead of an unordered list.
- Change
Workspace
link on AnVIL to useanvil.terra.bio
instead ofapp.terra.bio
- Add ability to send a notification email when a user links their AnVIL account.
- Display the linked user in the
AccountTable
table. - Show a link to the linked user on the
AccountDetail
page.
- Add ability to clone a workspace on AnVIL.
- Add ability to update
BillingProject
,Account
,ManagedGroup
, andWorkspace
, and workspace data models. - Add an extendable __object_detail.html template intended to be used by object detail templates.
- Add an optional note field to the
BillingProject
,Account
,ManagedGroup
, andWorkspace
models. - Add a user guide to the documentation.
- Only show links to views requiring edit permission if the user has that permission.
- Add a get_absolute_url method for
WorkspaceData
which returns the absolute url of the associated workspace. - Add a required "workspace_detail_template_name" field for workspace adapters.
- Add Workspace and ManagedGroup methods to check whether a group has access to a workspace.
- Rename the
WorkspaceGroupAccess
model toWorkspaceGroupSharing
, which is more consistent with AnVIL terminology. - Reword "access" to "sharing" in WorkspaceGroupSharing-related views and templates.
- Add more views for creating WorkspaceGroupSharing, GroupAccountMembership, and GroupGroupMembership objects using url parameters.
- Show groups that a group is part of on the ManagedGroup detail page.
- Add methods and views to audit information against AnVIL.
- Add account linking functionality
- First release