Skip to content

amsdal

v0.9.4 - 2026-06-15

Added

  • New amsdal.license.LicenseGuard — a process-level license validation gate. The license is validated exactly once per process and the result is cached at class scope, so it intentionally survives AmsdalManager.invalidate() / teardown(); a re-created manager no longer re-runs cloud authentication, which keeps per-test and per-request setup free of repeated cloud calls.
  • New AMSDAL_AUTH_TYPE setting (Settings.AUTH_TYPE) to explicitly select the authentication type (token or credentials) instead of relying on auto-detection from the configured credentials. An invalid value raises AmsdalAuthenticationError.
  • TokenAuthHandler now accepts offline DEV/CI license tokens: the JWT is validated against a list of accepted public keys (the production key plus an optional DEV_LICENSE_PUBLIC_KEY), so dev/CI tokens validate without contacting the cloud.

Changed

  • Reworked AmsdalManager / AsyncAmsdalManager authentication to go through LicenseGuard. The managers no longer construct AuthManager in __init__, and the raise_on_new_signup constructor argument together with the interactive signup-prompt path have been removed. authenticate() now delegates to LicenseGuard.ensure_valid(), and _check_auth() also succeeds when the license guard is already valid.
  • The init_config test helper now coerces raw string options into their StrEnum types, so client test suites launched via amsdal test (which forwards CLI arguments such as --lakehouse_option sqlite as plain strings) work without manual conversion. The init_manager_and_migrate helpers no longer call manager.authenticate() during migration setup.
  • Bumped the minimum amsdal_models dependency to >=0.8.7.

v0.9.3 - 2026-06-11

Fixed

  • amsdal.contrib.frontend_configs sidebar tabs: the tabs control is now the top-level form schema and the original top-level container (the auto-generated group, or a fixture's semantic container such as wizard/sections) is nested intact inside the Form tab, instead of being kept as an outer shell wrapping the tabs. This preserves the semantics of layout containers like wizard, which must own their step children directly rather than collapsing into an empty wrapper around a single tabs. Post-event mode buttons (Edit / Save / Delete) still route into the actions row inside the Form tab.
  • FixturesManager._process_object_data now resolves fixture keys against pydantic field aliases as well as field names. Foreign-key fields are stored under a private name (_<fk>_ref) with the public field name exposed only as the alias, so a fixture key naming the FK (e.g. object_control) was absent from model_fields keyed by name and raised KeyError. FK references (external_id strings) now load correctly.

v0.9.2 - 2026-06-08

Added

  • New TunnelDBAction and CloudActionsManager.tunnel_db(...) that expose an environment's database through an SSH tunnel via an EC2 bastion. The caller supplies an ephemeral OpenSSH public key, which is pushed to the bastion (valid for a short window), and the action returns the connection details (bastion host, ssh user, rds host/port, region) needed to open the tunnel locally.

Changed

  • Relaxed the pydantic dependency constraint from ~=2.12 to ~=2.13.

v0.9.1 - 2026-06-05

Fixed

  • amsdal.contrib.frontend_configs fixtures (fixtures/*.json) are now included in the packaged distribution. They were previously missing from package_data, so the built wheel shipped without the frontend_configs fixtures.
  • Dropped the incorrect cls: type local annotation in the AmsdalManager._freeze and AsyncAmsdalManager._freeze bootstrap loops. The loop value can be a non-type fallback, so the annotation was misleading; the accompanying # type: ignore is retained. No behavioural change.

v0.9.0 - 2026-06-01

Added

  • PIIStr, EncryptedStr, and get_pii_fields are now re-exported from amsdal.models. Previously these had to be imported from the internal amsdal_models.classes.fields.pii path; the public surface now mirrors the rest of the model API (Model, TypeModel, ReferenceField, ...).

Changed

  • AmsdalManager.setup() and AsyncAmsdalManager.setup() now eagerly import every registered model module and bulk-resolve deferred primary keys, foreign keys, and many-to-many references before returning. Previously these were resolved lazily through the metaclass on first class access. Behavioural impact: model import errors and circular-import problems now surface at setup() instead of at first attribute access. If you intentionally rely on a model being loaded after setup(), wrap the creation in allow_late_registration() from amsdal_models.classes.loading.
  • Auth contrib: the User.permissions: list[Permission] through-table has been renamed from UserPermission to UserPermissions to align with the auto-generated M2M through-class naming convention. Migrations 0004_create_class_userpermissions, 0005_migrate_user_permission_data, and 0006_delete_class_userpermission create the new class, copy existing rows in both directions (sync and async backends are both supported via AmsdalConfigManager().get_config().async_mode), and drop the legacy class. Breaking for application code that references the UserPermission class directly — replace with UserPermissions. Code that uses User.permissions through the QuerySet API is unaffected.

Fixed

  • FrontendConfigDashboardControlSource.model_rebuild() is now invoked in the frontend_config_control_action module-level rebuild block. Previously, depending on the import order of frontend_model_config (and therefore frontend_control_config) relative to other modules, FrontendConfigDashboardControlSource could be left with an unresolved forward reference to FrontendControlConfig, raising pydantic.errors.PydanticUserError: 'FrontendConfigDashboardControlSource' is not fully defined when instantiating an OpenSidebarAction whose content is a SidebarFormContent with a dynamic control_source.
  • AsyncAmsdalManager now registers AsyncMetadataInfoQuery via register_async_metadata_info_query() instead of the synchronous MetadataInfoQuery it was previously registering via register_metadata_info_query(). Async metadata queries (aget_metadata() and downstream callers) now consistently use the async implementation.

v0.8.14 - 2026-05-15

Added

  • Four new layout container types on FrontendControlConfig (amsdal.contrib.frontend_configs.models.frontend_control_config): row, column, tabs, tab. row arranges its column children side-by-side; column.width is an optional integer in the 1..12 Bootstrap-style grid (omitted columns share the row equally); tabs switches between its tab children, each of which requires a non-empty label. The new types compose recursively with each other and with the existing container types (group, section, sections, wizard, group_switch, group_toggle, info-group).
  • New optional width: int | None field on FrontendControlConfig (range 1..12), meaningful on column containers.
  • _validate_layout_pairing model validator on FrontendControlConfig enforcing strict parent-child pairing: row accepts only column children, tabs accepts only tab children, and every tab must declare a non-empty label. Misconfigurations surface at config-construction time with a clear ValueError rather than at render time.
  • Migration 0011_add_layout_control_types extends the stored FrontendControlConfig schema's type enum with row, column, tabs, tab and registers the width integer property. Pure additive migration — existing configs validate unchanged.
  • FrontendConfigDashboardVersions (amsdal.contrib.frontend_configs.models.frontend_config_dashboard) — new TypeModel with a single enabled: bool field (default True). Wired into FrontendConfigDashboardElement.versions (nullable, alongside pagination and sort); when set on a table element, the frontend renders the per-row versions UI. Migration 0011 also creates this class and adds the versions property on FrontendConfigDashboardElement.

Changed

  • _CONTAINER_TYPES frozenset in amsdal.contrib.frontend_configs.conversion.class_object_form extended with row, column, tabs, tab. Value pre-fill, readOnly propagation in 'view' mode, and recursive field-name collection in _decorate_tree / _collect_field_names now traverse the new containers, so leaf controls nested inside tabs > tab > row > column chains receive id, value, and readOnly decoration just like leaves inside section / group.
  • Auto-generated forms (convert_to_frontend_config) continue to emit a linear control list; the new layout primitives are opt-in for fixture-supplied (FrontendModelConfig.control) or statically authored FrontendControlConfig trees.

v0.8.13 - 2026-05-13

Added

  • OpenSidebarAction (type: 'open_sidebar') and CloseSidebarAction (type: 'close_sidebar') — new frontend control actions in amsdal.contrib.frontend_configs.models.frontend_config_control_action. Sidebars are stackable by id, positionable (left | right | top | bottom, default right), sized (small | medium | large), and closable either by built-in UI or CloseSidebarAction(target_id=...). Both actions join the ActionType discriminated union and are accepted everywhere ActionType is — FrontendControlConfig.actions, .on_enter, FrontendConfigDashboardElement.on_row_click, InvokeAction.onSuccess/.onError.
  • OpenSidebarAction.content is a discriminated union (SidebarContentType) with two kinds:
  • SidebarFormContent (content_type: 'form') — carries a control_source: FrontendConfigDashboardControlSource so the form is populated either statically (control_source.static_value) or dynamically by a transaction (control_source.dynamic_value), mirroring the UpdateFormAction / dashboard form element pattern.
  • SidebarStaticContent (content_type: 'static') — rendered text body in markdown (default), html, or text.
  • Default dashboard now opens a sidebar on table row click: _build_class_element (amsdal.contrib.frontend_configs.services.default_dashboard) emits a single open_sidebar action whose SidebarFormContent.control_source calls the class form provider (get_class_object_form sync, aget_class_object_form async) with address={row._lakehouse_address} and mode='view'. Replaces the previous update_form row-click action.
  • Migration 0010_add_sidebar_actions registers the new classes and extends ActionType consumers (FrontendControlConfig.actions/.on_enter, InvokeAction.onSuccess/.onError, FrontendConfigDashboardElement.on_row_click) to accept the two new action types.

Changed

  • Default dashboard _build_class_element no longer emits an update_form action on on_row_click; the read-only object form is now shown via the new sidebar instead.

v0.8.12 - 2026-05-12

Added

  • get_class_object_form_schema / aget_class_object_form_schema now consult FrontendModelConfig first via _load_fixture_root / _aload_fixture_root and use the stored control payload as the form layout when a matching, non-deleted record exists for class_name (latest version). When no fixture is found the auto-generated convert_to_frontend_config path is used as before. The fixture path is best-effort — any exception during import or query (e.g. pydantic schema rebuild failure, table missing) is swallowed and the schema falls back to auto-gen.
  • _decorate_tree walks fixture-supplied control trees recursively: containers (group, sections, section, group_switch, group_toggle, info-group, wizard) are descended via their controls list; buttons are passed through untouched; leaf controls get id = name, value from the loaded object, and readOnly = True in 'view' mode. Input controls are never mutated — every node is deep-cloned. _collect_field_names performs the matching traversal to gather every leaf name so the appended Save/Create button body templates cover the full tree, no matter how deeply nested. _build_from_fixture glues these together and appends the mode buttons at the root.
  • _apply_read_only_to_template recursively marks array / dict item templates (the singular control dict and any nested controls list) as readOnly. Wired into both the auto-gen path (_decorate_controls) and the fixture path, so per-item children of array / dict fields no longer render editable when the parent is readOnly.

Changed

  • _CONTAINER_TYPES frozenset and Versions.LATEST import added to class_object_form so fixture queries and tree-walks can filter the right node types and version.

v0.8.11 - 2026-05-08

Added

  • Nested per-app sections in the synthesized default dashboard: each top-level Classes and Transactions section now contains one subsection per app (id classes-<slug> / transactions-<slug>) — User Models/User Transactions first, then one entry per AppConfig in settings.CONTRIBS order, then Core last. Empty subsections are omitted.
  • AppConfig.title, AppConfig.slug, AppConfig.models_module_prefix, AppConfig.package_dir — new optional metadata on the contrib base class. slug, models_module_prefix, and package_dir derive from the subclass's __module__ by default (works for both amsdal.contrib.<name> and external contribs like amsdal_storages); title defaults to empty and contribs set it explicitly. Built-in AuthAppConfig.title = 'Auth' and FrontendConfigAppConfig.title = 'Frontend Configs'.
  • Curated core-models allowlist _CORE_DASHBOARD_MODELS = frozenset({'File'}) controlling which ModuleType.CORE classes surface in the synthesized dashboard's Core subsection.
  • Dynamic dashboard title resolution: synthesized dashboard title now reads (in priority order) the user APP_CONFIG class's title class attribute → humanized AmsdalConfigManager().get_config().application_name from config.yml ('amsdal-customers' → 'Amsdal Customers') → literal 'Dashboard'. Stored FrontendConfigDashboard(default) records continue to take precedence.

Changed

  • Per-class and per-transaction wrapper sections collapsed in the synthesized dashboard payload: each class now emits a single flat 'table' element carrying id='cls-<Name>' and title='<Name>' (instead of a 'section' wrapping a single 'table'); each transaction emits a flat 'form' element with id='tx-<Name>' and title='<Name>'. The FrontendConfigDashboardElement schema already permits id/title on every element type, so no model change. Frontends that match on type=='section' to find class/transaction headings need to read id/title off the leaf table/form element.
  • _class_objects_qs filter in the dashboard service replaces the hardcoded Q(title='File') shortcut with Q(module_type=ModuleType.CORE, title__in=list(_CORE_DASHBOARD_MODELS)).

v0.8.10 - 2026-05-07

Added

  • PII_CRYPTO_SERVICE setting to choose the PII crypto implementation via dotted path (amsdal.services.pii_cryptor.PIICryptorService or amsdal.services.fake_crypto.FakeCryptoService)
  • PIICryptorService.initialize() and FakeCryptoService.initialize() — the chosen service now validates its own requirements at registration time; FakeCryptoService logs a one-shot warning banner when active

Changed

  • register_pii_crypto_service() no longer accepts base_url and client_id arguments — it reads PII_CRYPTO_SERVICE, PII_CRYPTOR_BASE_URL, and PII_CRYPTOR_CLIENT_ID from settings and instantiates the configured service. Selection between real and fake is now explicit — apps that previously relied on an empty PII_CRYPTOR_BASE_URL to silently fall back to the fake service must now set PII_CRYPTO_SERVICE=amsdal.services.fake_crypto.FakeCryptoService (or provide a real PII_CRYPTOR_BASE_URL).
  • Bumped amsdal_models minimum to >=0.7.8; refreshed amsdal_data to 0.6.4 and amsdal_server to 0.8.3 in the lockfile

Fixed

  • Composite-PK regression: filter(_address__object_id__in=[(s, c), ...]) no longer produces invalid text = ANY(int[]) SQL — each tuple is split into per-segment AND-blocks combined by OR

v0.8.9 - 2026-05-06

Added

  • hidden=True kwarg on @transaction / @async_transaction decorators. Transactions decorated with hidden=True are omitted from GET /api/transactions/ and from the synthesized default dashboard's transaction sections. Detail (GET /api/transactions/{name}/) and execution (POST /api/transactions/{name}/) endpoints remain reachable, so internal helpers stay invokable by name. is_hidden_transaction AST helper is exposed in amsdal.services.transaction_execution and amsdal_server.apps.transactions.utils.
  • Built-in get_transaction_form / aget_transaction_form contrib transactions are now marked hidden=True so they no longer surface in the user-facing transaction list or dashboard.

Changed

  • get_transaction_form_schema / aget_transaction_form_schema now return a Run button as a type: 'button' control appended to controls (instead of a top-level actions list with type: 'submit'). Auto-generated field controls get id = name so the button's InvokeAction body can reference each field via {<id>} templating. The button posts to /api/transactions/<name>/ with a body that explicitly maps each declared transaction parameter ({arg: '{arg}', ...}). get_transaction_controls / aget_transaction_controls and the legacy _build_transaction_control alias are unchanged.

v0.8.8 - 2026-05-06

Added

  • get_transaction_form and aget_transaction_form contrib transactions in amsdal.contrib.frontend_configs.transactions. Each accepts a transaction_name and returns the auto-generated form schema (controls plus a submit actions entry) for the named transaction, allowing dashboard configs to retrieve a transaction's form via the standard dynamic_value.transaction execute path with body.transaction_name.
  • Shared helpers get_transaction_controls / aget_transaction_controls and get_transaction_form_schema / aget_transaction_form_schema in amsdal.contrib.frontend_configs.conversion.

Changed

  • Default dashboard transaction sections now emit dynamic_value: {type: 'transaction', entity_name: 'get_transaction_form' | 'aget_transaction_form', body: {transaction_name: <name>}} instead of placing the target transaction's name directly on dynamic_value.transaction. The previous shape continues to work because TransactionDetailControlListener is unchanged in observable behavior.

v0.8.7 - 2026-05-04

Added

  • Auto-generated default FrontendConfigDashboard returned by GET /api/contrib/frontend-config/dashboard/config when no default record exists. Synthesized payload exposes a "Classes" section (one paginated/sortable table per visible class, mirroring /api/classes/ filtering and per-user permissions) and a "Transactions" section (one dynamic-form section per visible transaction). Stored default records still take precedence.
  • TransactionExecutionService.iter_transaction_definitions public iterator over discovered transactions (renamed from _get_transaction_definitions).

v0.8.5 - 2026-04-12

Added

  • Fixtures for FrontendModelConfig and FrontendConfigDashboard forms
  • CRUD permissions for FrontendModelConfig

Fixed

  • Circular type reference in convert_to_frontend_config no longer causes infinite recursion

v0.8.4 - 2026-04-10

Added

  • pagination and sort fields on FrontendConfigDashboardElement for table dashboard elements, enabling server-side pagination and sorting contracts between the frontend and data source transactions

v0.8.3 - 2026-04-10

Added

  • AuditMixin for automatic audit tracking: created_by, updated_by, action, and field-level changes diff
  • __auto_managed_fields__ mechanism and get_auto_managed_fields() helper for excluding service fields from frontend forms
  • stamp_timestamp() and stamp_audit() public methods for manual stamping in bulk operations
  • hide_default_buttons field in FrontendControlConfig

Changed

  • Frontend configs conversion now uses get_auto_managed_fields() instead of hardcoded TimestampMixin check

v0.8.2 - 2026-03-30

Added

  • custom_css field added in frontend configs

Fixed

  • Fixed File.storage property to handle missing _storage PrivateAttr on migration-compiled classes
  • Fixed File.storage to resolve storage_address dict to Reference for migration-compiled classes
  • Clear migration-compiled classes from ClassManager after migrations to use filesystem-loaded classes at runtime

v0.8.1 - 2026-03-09

Added

  • Added table_actions for table dashboard config

v0.8.0 - 2026-02-25

Added

  • PII Cryptor service for encrypting and decrypting sensitive data
  • PII Cryptor settings (PII_CRYPTOR_BASE_URL, PII_CRYPTOR_CLIENT_ID) to configuration

v0.7.6 - 2026-02-24

Changed

  • Added paragraph and header frontend control config types

v0.7.5 - 2026-02-20

Fixed

  • Fix for circular imports in models

v0.7.4 - 2026-02-20

Changed

  • Frontend config action definition updated

v0.7.3 - 2026-02-19

Added

  • On row click added to dashboard config

v0.7.2 - 2026-02-17

Fixed

  • Fix async authentication to handle awaitable permission items in M2M lazy loading

v0.7.1 - 2026-02-16

Added

  • New transactions to generate email challenge

v0.7.0 - 2026-02-13

Changed

  • Refactored authorization system to use composable permissions (BasePermission, PermissionSet, RequireAuth)
  • Replaced legacy ALLOW_ANY constant and scope-based logic with has_admin_permissions and has_permissions functions
  • Updated migrations for LoginSession and MFADevice

v0.6.1 - 2026-02-11

Changed

  • Emit events on MFA challanges

v0.6.0 - 2026-02-05

Changed

  • New events

v0.5.44 - 2026-02-04

Changed

  • form type added to dashboard frontend config

v0.5.43 - 2026-01-25

Changed

  • Added support for fixture structure with nested folders

v0.5.42 - 2026-01-24

Changed

  • Use default manager in fixtures apply

v0.5.41 - 2026-01-22

Fixed

  • Fix for fixtures with Any field

v0.5.40 - 2026-01-19

Changed

  • Move CRM contrib into a separate plugin

v0.5.39 - 2026-01-14

Fixed

  • CRM contrib migrations

v0.5.38 - 2026-01-14

Fixed

  • CRM contrib migrations

v0.5.37 - 2026-01-13

Added

  • CRM contrib

v0.5.36 - 2026-01-02

Fixed

  • Fix for fixture loads with date/datetime values

v0.5.35 - 2025-12-26

Added

  • Added cloud functions for external connections

v0.5.34 - 2025-12-23

Changed

  • Deploying pyproject.toml if exists

v0.5.33 - 2025-12-22

Added

  • Added support for python 3.13

v0.5.32 - 2025-12-21

Changed

  • Update the pydantic to 2.12

v0.5.31 - 2025-12-18

Changed

  • Change the parameters of MFA transaction

v0.5.29 - 2025-12-18

Fixed

  • Fix for serialization

v0.5.28 - 2025-12-17

Added

  • New dashboard config added to the frontend config contrib

v0.5.27 - 2025-12-07

Added

  • Support for contrib transactions

v0.5.26 - 2025-11-30

Added

  • MFA transactions

v0.5.25 - 2025-11-27

Added

  • MFA support added to auth contrib

v0.5.24 - 2025-11-14

Added

  • New frontend config types: 'attachment', 'wizard'

v0.5.23 - 2025-11-05

Added

  • Added 'id' field to FrontendControlConfig model

v0.5.22 - 2025-11-05

Fixed

  • Fix for multiple models

v0.5.21 - 2025-11-05

Changed

  • Added actions to Frontend Config

v0.5.20 - 2025-10-22

Fixed

  • Fix for models compilation

v0.5.19 - 2025-10-20

Added

  • Support for external connections

v0.5.18 - 2025-10-12

Fixed

  • Moved processing of Annotated types earlier in the conversion function to ensure proper handling.

v0.5.17 - 2025-10-10

Fixed

  • Handle created_at field correctly in pre_update and apre_update methods of TimestampMixin to ensure it is set even if not explicitly provided during updates.

v0.5.16 - 2025-10-09

Changed

  • Allow to pass contribs to settings as comma-separated string or JSON array.

v0.5.15 - 2025-10-02

Fixed

  • Fix for handling of files in fixtures

v0.5.14 - 2025-09-26

Changed

  • Remove created_at and updated_at fields from frontend configurations for models that do not inherit from TimestampMixin

v0.5.13 - 2025-09-25

Fixed

  • Fixed conf env names for storage settings

v0.5.12 - 2025-09-25

Changed

  • Exclude TimestampMixin fields from frontend config

v0.5.11 - 2025-09-19

Fixed

  • Adjusted file persist

v0.5.10 - 2025-09-08

Added

  • Conditions added to frontend config

v0.5.9 - 2025-09-04

Fixed

  • Fixes

v0.5.8 - 2025-09-03

Changes

  • File storages

v0.5.7 - 2025-08-21

Added

  • Added TimestampMixin to models for automatic handling of created_at and updated_at fields.

v0.5.6 - 2025-07-31

Changed

  • Exclude models from stubgen

v0.5.5 - 2025-07-28

Fixed

  • Fixes for QS.only

v0.5.4 - 2025-07-11

Fixed

  • Fix for handling the token

v0.5.3 - 2025-07-11

Added

  • Use config_dir to cache token

v0.5.2 - 2025-07-02

Fixed

  • Fix for annotated types in frontend configs conversion.

v0.5.1 - 2025-06-20

Changed

  • Handle literals in frontend configs

v0.4.14 - 2025-06-19

Fixed

  • Handle literals in frontend configs

v0.4.13 - 2025-06-19

Fixed

  • Fix for frontend configs

v0.5.0 - 2025-05-22

Changed

  • Migrations improvements: transfer data on the connection level

v0.4.12 - 2025-05-06

Fixed

  • Fix for optional model parameters in transactions

v0.4.11 - 2025-04-17

Fixed

  • Fixed migration of models with enums

v0.4.10 - 2025-04-14

Added

  • Added short import for TypeModel

v0.4.9 - 2025-04-06

Fixed

  • Fixed deploy

v0.4.8 - 2025-04-04

Changed

  • Deploy amsdal-cli file if exist

v0.4.7 - 2025-03-25

Added

  • Added import shortcuts

v0.4.6 - 2025-03-17

Fixed

  • Fox for unique fields

v0.4.5 - 2025-03-13

Fixed

  • Authentication without proper email/password raises an error

v0.4.4 - 2025-03-11

Fixed

  • Fix for authentication without models

v0.4.3 - 2025-03-07

Fixed

  • Test helpers adjusted

v0.4.2 - 2025-03-05

Changed

  • Added support for db_field

v0.4.1 - 2025-02-25

Fixed

  • Added auth contrib fixtures

v0.4.0 - 2025-02-24

Added

  • Support for FKs and M2Ms
  • Python classes

v0.3.6 - 2024-02-13

Changed

  • Adjusted helpers for tests (adjusted-test-helpers)

v0.3.5 - 2024-12-10

Fixed

  • Use AsyncBackgroundTransactionManager (AsyncBackgroundTransactionManager)

v0.3.4 - 2024-12-09

Added

  • AsyncFileMigrationStore added (AsyncFileMigrationStore)

v0.3.3 - 2024-12-06

Added

  • Async hooks in contrib (async-hooks)
  • Execute async transactions (async-transactions)

v0.3.2 - 2024-12-05

Added

  • Async support (async-support)

v0.3.1 - 2024-11-28

Fixed

  • Fixed schema type usage in migration (schema-type-fix)

v0.3.0 - 2024-11-27

Changed

  • Metadata redesign: moving metadata into historical connection (metadata-redesign)

v0.2.6 - 2024-11-04

Added

  • Nested filtering support (nested-filtering)

v0.2.5 - 2024-10-28

Added

  • Python3.12 support added (python3.12-support)

v0.2.4 - 2024-10-24

No significant changes.

v0.2.3 - 2024-10-23

Changed

  • Optimization for User model init (user-init)

v0.2.2 - 2024-10-18

Fixed

  • Fix for worker connection init (worker-connection-init)

v0.2.1 - 2024-10-18

Fixed

  • Handle update with specific object version (update-specific-object-version)

v0.2.0 - 2024-10-15

Added

  • AMSDAL Glue integration (amsdal-glue)

v0.1.27 - 2024-09-12

Added

  • Added google style docstring (docstring)

v0.1.26 - 2024-09-04

Added

  • Background transactions (background-transactions)

v0.1.25 - 2024-08-26

Added

  • Added heplers for testing (testing-helpers)

v0.1.24 - 2024-08-20

Fixed

  • Fix password change for User (fix-password-change)

v0.1.23 - 2024-07-16

Added

  • Support for ordering in fixtures (support-for-ordering-in-fixtures)

v0.1.22 - 2024-07-11

Fixed

  • Handled dicts and structures in fixtures (handled-dicts-and-structures-in-fixtures)
  • Added frontend configs generation for structure types (frontend-configs-generation-for-structure-types)

v0.1.21 - 2024-06-07

Added

  • Cloud operation to delete environment (cloud-operation-delete-environment)

v0.1.20 - 2024-05-30

Fixed

  • Frontend config response handling (frontend-config-response-handling)

v0.1.19 - 2024-05-22

Added

  • Date and Datetime field types added (date-datetime-field-types)

v0.1.18 - 2024-05-15

Added

  • Environment management commands (environment-management-commands)

v0.1.17 - 2024-05-09

Changed

  • It is now possible to specify permissions for a specific object. A flag has been added that indicates the need for permissions for models by default (object-level-permissions)
  • Removed iceberg from default dependency (iceberg-removed)
  • Added list of all dependencies to ListDependenciesDetails (all-dependencies)

v0.1.16 - 2024-05-06

Added

  • Bulk operations (bulk-operations)

v0.1.15 - 2024-05-03

Changed

  • Improved repr of File to avoid printing whole file content (filre-repr)

Fixed

  • Fixed migration for deleted data (migrate-deleted-data)

v0.1.12 - 2024-04-25

Changed

  • Add ability to pass noinput flag for deploy service. (silent-deploy)

Fixed

  • Set left-to-right union mode for references. (left-to-right-union-mode-for-references)

v0.0.41 - 2024-03-12

Changed

  • Return object_latest in frontend configs for models in transaction arguments (return-object-latest)

v0.0.40 - 2024-03-07

Added

  • Context manager added (context-manager)

v0.0.39 - 2024-03-06

Fixed

  • Do not call hooks during state DB refresh (do-not-call-hooks-during-state-db-refresh)
  • previous_version method now uses the the lakehouse connection (previous-version-lakehouse-connection)

v0.0.38 - 2024-03-05

Changed

  • References are now resolved into objects (references-resolved-into-objects)

v0.0.37 - 2024-03-01

Added

  • Postgres state connection added (postgres-state-connection)

Changed

  • Files are now created first in fixtures (files-creation-first)

v0.0.36 - 2024-02-27

Fixed

  • Fixed static files handling (static-files-handling)
  • Fixed references in fixtures (fixed-references-in-fixtures)
  • Fixed object_version filter in lakehouse connections (fixed-object-version-filter)

v0.0.35 - 2024-02-22

Added

  • Allow to specify IP address in the expose DB operation (expose-db-ip)

v0.0.34 - 2024-02-22

Added

  • New operations to add dependencies and expose DB (cloud-dependency-operations)

v0.0.33 - 2024-02-20

Fixed

  • Fixed transaction parameters in frontend config (fixed-transaction-parameters)

v0.0.32 - 2024-02-20

Changed

  • Improved automatic frontend config generation (improved-frontend-config-generation)

v0.0.31 - 2024-02-15

Fixed

  • Remove old transactions on rebuild (remove-old-transactions)
  • Improved metadata performance (improved-metadata-performance)

v0.0.30 - 2024-02-14

Added

  • Cloud app secrets management (cloud-app-secrets)

v0.0.29 - 2024-02-13

Fixed

  • Fixed init class versions (fixed-init-class-versions)

v0.0.28 - 2024-02-06

Changed

  • Transactions are copied with full file structure (transactions-file-structure)

v0.0.27 - 2024-02-04

Fixed

  • Fixed handling of references (fixed-references-handling)

v0.0.26 - 2024-01-31

Changed

  • Added values in frontend config (frontend-config-values)

v0.0.25 - 2024-01-30

Added

  • Postgres connection added (postgres-connection)

v0.0.24 - 2024-01-23

Changed

  • Updates to deploy commands (deploy-cli-updates)

v0.0.23 - 2024-01-19

Changed

  • Changes to CLI methods methods (deploy-cli)

v0.0.22 - 2024-01-17

Fixed

  • Fixed authorization (authorization-fix)

v0.0.21 - 2024-01-16

Added

  • Fixes and improvements for supporting integrations (integrations)
  • Filtering by object (filtering-by-objects)

v0.0.20 - 2024-01-12

Added

  • Auto-generation of Frondend Config (frontend-config-auto-generation)
  • Deploy methods added to AMSDAL Manager (deploy-methods)

v0.0.19 - 2023-12-22

Fixed

  • Take into account the exclude_none parameter when dumping a model (respect-exclude-none)

v0.0.18 - 2023-12-20

Added

  • Added Address to documentation. (docs-address-api)
  • Added change-logs to documentation. (docs-change-logs)
  • Added QuerySet .using() and _address filter into documentation. (docs-queryset-using)
  • Added AMSDAL Server API documentation. (docs-server-api)
  • Transactions added to Metadata and Lakehouse (transactions)

Changed

  • Lazy loading of References in Metadata (lazy-references)