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 survivesAmsdalManager.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_TYPEsetting (Settings.AUTH_TYPE) to explicitly select the authentication type (tokenorcredentials) instead of relying on auto-detection from the configured credentials. An invalid value raisesAmsdalAuthenticationError. TokenAuthHandlernow accepts offline DEV/CI license tokens: the JWT is validated against a list of accepted public keys (the production key plus an optionalDEV_LICENSE_PUBLIC_KEY), so dev/CI tokens validate without contacting the cloud.
Changed¶
- Reworked
AmsdalManager/AsyncAmsdalManagerauthentication to go throughLicenseGuard. The managers no longer constructAuthManagerin__init__, and theraise_on_new_signupconstructor argument together with the interactive signup-prompt path have been removed.authenticate()now delegates toLicenseGuard.ensure_valid(), and_check_auth()also succeeds when the license guard is already valid. - The
init_configtest helper now coerces raw string options into theirStrEnumtypes, so client test suites launched viaamsdal test(which forwards CLI arguments such as--lakehouse_option sqliteas plain strings) work without manual conversion. Theinit_manager_and_migratehelpers no longer callmanager.authenticate()during migration setup. - Bumped the minimum
amsdal_modelsdependency to>=0.8.7.
v0.9.3 - 2026-06-11¶
Fixed¶
amsdal.contrib.frontend_configssidebar tabs: thetabscontrol is now the top-level form schema and the original top-level container (the auto-generatedgroup, or a fixture's semantic container such aswizard/sections) is nested intact inside the Form tab, instead of being kept as an outer shell wrapping thetabs. This preserves the semantics of layout containers likewizard, which must own their step children directly rather than collapsing into an empty wrapper around a singletabs. Post-event mode buttons (Edit / Save / Delete) still route into the actions row inside the Form tab.FixturesManager._process_object_datanow 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 frommodel_fieldskeyed by name and raisedKeyError. FK references (external_id strings) now load correctly.
v0.9.2 - 2026-06-08¶
Added¶
- New
TunnelDBActionandCloudActionsManager.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
pydanticdependency constraint from~=2.12to~=2.13.
v0.9.1 - 2026-06-05¶
Fixed¶
amsdal.contrib.frontend_configsfixtures (fixtures/*.json) are now included in the packaged distribution. They were previously missing frompackage_data, so the built wheel shipped without the frontend_configs fixtures.- Dropped the incorrect
cls: typelocal annotation in theAmsdalManager._freezeandAsyncAmsdalManager._freezebootstrap loops. The loop value can be a non-type fallback, so the annotation was misleading; the accompanying# type: ignoreis retained. No behavioural change.
v0.9.0 - 2026-06-01¶
Added¶
PIIStr,EncryptedStr, andget_pii_fieldsare now re-exported fromamsdal.models. Previously these had to be imported from the internalamsdal_models.classes.fields.piipath; the public surface now mirrors the rest of the model API (Model,TypeModel,ReferenceField, ...).
Changed¶
AmsdalManager.setup()andAsyncAmsdalManager.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 atsetup()instead of at first attribute access. If you intentionally rely on a model being loaded aftersetup(), wrap the creation inallow_late_registration()fromamsdal_models.classes.loading.- Auth contrib: the
User.permissions: list[Permission]through-table has been renamed fromUserPermissiontoUserPermissionsto align with the auto-generated M2M through-class naming convention. Migrations0004_create_class_userpermissions,0005_migrate_user_permission_data, and0006_delete_class_userpermissioncreate the new class, copy existing rows in both directions (sync and async backends are both supported viaAmsdalConfigManager().get_config().async_mode), and drop the legacy class. Breaking for application code that references theUserPermissionclass directly — replace withUserPermissions. Code that usesUser.permissionsthrough the QuerySet API is unaffected.
Fixed¶
FrontendConfigDashboardControlSource.model_rebuild()is now invoked in thefrontend_config_control_actionmodule-level rebuild block. Previously, depending on the import order offrontend_model_config(and thereforefrontend_control_config) relative to other modules,FrontendConfigDashboardControlSourcecould be left with an unresolved forward reference toFrontendControlConfig, raisingpydantic.errors.PydanticUserError: 'FrontendConfigDashboardControlSource' is not fully definedwhen instantiating anOpenSidebarActionwhosecontentis aSidebarFormContentwith a dynamiccontrol_source.AsyncAmsdalManagernow registersAsyncMetadataInfoQueryviaregister_async_metadata_info_query()instead of the synchronousMetadataInfoQueryit was previously registering viaregister_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.rowarranges itscolumnchildren side-by-side;column.widthis an optional integer in the 1..12 Bootstrap-style grid (omitted columns share the row equally);tabsswitches between itstabchildren, each of which requires a non-emptylabel. 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 | Nonefield onFrontendControlConfig(range 1..12), meaningful oncolumncontainers. _validate_layout_pairingmodel validator onFrontendControlConfigenforcing strict parent-child pairing:rowaccepts onlycolumnchildren,tabsaccepts onlytabchildren, and everytabmust declare a non-emptylabel. Misconfigurations surface at config-construction time with a clearValueErrorrather than at render time.- Migration
0011_add_layout_control_typesextends the storedFrontendControlConfigschema's type enum withrow,column,tabs,taband registers thewidthinteger property. Pure additive migration — existing configs validate unchanged. FrontendConfigDashboardVersions(amsdal.contrib.frontend_configs.models.frontend_config_dashboard) — newTypeModelwith a singleenabled: boolfield (defaultTrue). Wired intoFrontendConfigDashboardElement.versions(nullable, alongsidepaginationandsort); when set on atableelement, the frontend renders the per-row versions UI. Migration0011also creates this class and adds theversionsproperty onFrontendConfigDashboardElement.
Changed¶
_CONTAINER_TYPESfrozenset inamsdal.contrib.frontend_configs.conversion.class_object_formextended withrow,column,tabs,tab. Value pre-fill,readOnlypropagation in'view'mode, and recursive field-name collection in_decorate_tree/_collect_field_namesnow traverse the new containers, so leaf controls nested insidetabs > tab > row > columnchains receiveid,value, andreadOnlydecoration just like leaves insidesection/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 authoredFrontendControlConfigtrees.
v0.8.13 - 2026-05-13¶
Added¶
OpenSidebarAction(type: 'open_sidebar') andCloseSidebarAction(type: 'close_sidebar') — new frontend control actions inamsdal.contrib.frontend_configs.models.frontend_config_control_action. Sidebars are stackable byid, positionable (left | right | top | bottom, defaultright), sized (small | medium | large), and closable either by built-in UI orCloseSidebarAction(target_id=...). Both actions join theActionTypediscriminated union and are accepted everywhereActionTypeis —FrontendControlConfig.actions,.on_enter,FrontendConfigDashboardElement.on_row_click,InvokeAction.onSuccess/.onError.OpenSidebarAction.contentis a discriminated union (SidebarContentType) with two kinds:SidebarFormContent(content_type: 'form') — carries acontrol_source: FrontendConfigDashboardControlSourceso the form is populated either statically (control_source.static_value) or dynamically by a transaction (control_source.dynamic_value), mirroring theUpdateFormAction/ dashboardformelement pattern.SidebarStaticContent(content_type: 'static') — rendered text body inmarkdown(default),html, ortext.- Default dashboard now opens a sidebar on table row click:
_build_class_element(amsdal.contrib.frontend_configs.services.default_dashboard) emits a singleopen_sidebaraction whoseSidebarFormContent.control_sourcecalls the class form provider (get_class_object_formsync,aget_class_object_formasync) withaddress={row._lakehouse_address}andmode='view'. Replaces the previousupdate_formrow-click action. - Migration
0010_add_sidebar_actionsregisters the new classes and extendsActionTypeconsumers (FrontendControlConfig.actions/.on_enter,InvokeAction.onSuccess/.onError,FrontendConfigDashboardElement.on_row_click) to accept the two new action types.
Changed¶
- Default dashboard
_build_class_elementno longer emits anupdate_formaction onon_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_schemanow consultFrontendModelConfigfirst via_load_fixture_root/_aload_fixture_rootand use the storedcontrolpayload as the form layout when a matching, non-deleted record exists forclass_name(latest version). When no fixture is found the auto-generatedconvert_to_frontend_configpath 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_treewalks fixture-supplied control trees recursively: containers (group,sections,section,group_switch,group_toggle,info-group,wizard) are descended via theircontrolslist; buttons are passed through untouched; leaf controls getid = name,valuefrom the loaded object, andreadOnly = Truein'view'mode. Input controls are never mutated — every node is deep-cloned._collect_field_namesperforms 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_fixtureglues these together and appends the mode buttons at the root._apply_read_only_to_templaterecursively marksarray/dictitem templates (the singularcontroldict and any nestedcontrolslist) asreadOnly. 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_TYPESfrozenset andVersions.LATESTimport added toclass_object_formso 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
ClassesandTransactionssection now contains one subsection per app (idclasses-<slug>/transactions-<slug>) —User Models/User Transactionsfirst, then one entry perAppConfiginsettings.CONTRIBSorder, thenCorelast. 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, andpackage_dirderive from the subclass's__module__by default (works for bothamsdal.contrib.<name>and external contribs likeamsdal_storages);titledefaults to empty and contribs set it explicitly. Built-inAuthAppConfig.title = 'Auth'andFrontendConfigAppConfig.title = 'Frontend Configs'.- Curated core-models allowlist
_CORE_DASHBOARD_MODELS = frozenset({'File'})controlling whichModuleType.COREclasses surface in the synthesized dashboard'sCoresubsection. - Dynamic dashboard title resolution: synthesized dashboard
titlenow reads (in priority order) the userAPP_CONFIGclass'stitleclass attribute → humanizedAmsdalConfigManager().get_config().application_namefromconfig.yml('amsdal-customers' → 'Amsdal Customers') → literal'Dashboard'. StoredFrontendConfigDashboard(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 carryingid='cls-<Name>'andtitle='<Name>'(instead of a'section'wrapping a single'table'); each transaction emits a flat'form'element withid='tx-<Name>'andtitle='<Name>'. TheFrontendConfigDashboardElementschema already permitsid/titleon every element type, so no model change. Frontends that match ontype=='section'to find class/transaction headings need to readid/titleoff the leaf table/form element. _class_objects_qsfilter in the dashboard service replaces the hardcodedQ(title='File')shortcut withQ(module_type=ModuleType.CORE, title__in=list(_CORE_DASHBOARD_MODELS)).
v0.8.10 - 2026-05-07¶
Added¶
PII_CRYPTO_SERVICEsetting to choose the PII crypto implementation via dotted path (amsdal.services.pii_cryptor.PIICryptorServiceoramsdal.services.fake_crypto.FakeCryptoService)PIICryptorService.initialize()andFakeCryptoService.initialize()— the chosen service now validates its own requirements at registration time;FakeCryptoServicelogs a one-shot warning banner when active
Changed¶
register_pii_crypto_service()no longer acceptsbase_urlandclient_idarguments — it readsPII_CRYPTO_SERVICE,PII_CRYPTOR_BASE_URL, andPII_CRYPTOR_CLIENT_IDfrom settings and instantiates the configured service. Selection between real and fake is now explicit — apps that previously relied on an emptyPII_CRYPTOR_BASE_URLto silently fall back to the fake service must now setPII_CRYPTO_SERVICE=amsdal.services.fake_crypto.FakeCryptoService(or provide a realPII_CRYPTOR_BASE_URL).- Bumped
amsdal_modelsminimum to>=0.7.8; refreshedamsdal_datato0.6.4andamsdal_serverto0.8.3in the lockfile
Fixed¶
- Composite-PK regression:
filter(_address__object_id__in=[(s, c), ...])no longer produces invalidtext = ANY(int[])SQL — each tuple is split into per-segment AND-blocks combined by OR
v0.8.9 - 2026-05-06¶
Added¶
hidden=Truekwarg on@transaction/@async_transactiondecorators. Transactions decorated withhidden=Trueare omitted fromGET /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_transactionAST helper is exposed inamsdal.services.transaction_executionandamsdal_server.apps.transactions.utils.- Built-in
get_transaction_form/aget_transaction_formcontrib transactions are now markedhidden=Trueso they no longer surface in the user-facing transaction list or dashboard.
Changed¶
get_transaction_form_schema/aget_transaction_form_schemanow return a Run button as atype: 'button'control appended tocontrols(instead of a top-levelactionslist withtype: 'submit'). Auto-generated field controls getid = nameso the button'sInvokeActionbody 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_controlsand the legacy_build_transaction_controlalias are unchanged.
v0.8.8 - 2026-05-06¶
Added¶
get_transaction_formandaget_transaction_formcontrib transactions inamsdal.contrib.frontend_configs.transactions. Each accepts atransaction_nameand returns the auto-generated form schema (controls plus a submitactionsentry) for the named transaction, allowing dashboard configs to retrieve a transaction's form via the standarddynamic_value.transactionexecute path withbody.transaction_name.- Shared helpers
get_transaction_controls/aget_transaction_controlsandget_transaction_form_schema/aget_transaction_form_schemainamsdal.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 ondynamic_value.transaction. The previous shape continues to work becauseTransactionDetailControlListeneris unchanged in observable behavior.
v0.8.7 - 2026-05-04¶
Added¶
- Auto-generated default
FrontendConfigDashboardreturned byGET /api/contrib/frontend-config/dashboard/configwhen nodefaultrecord 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). Storeddefaultrecords still take precedence. TransactionExecutionService.iter_transaction_definitionspublic iterator over discovered transactions (renamed from_get_transaction_definitions).
v0.8.5 - 2026-04-12¶
Added¶
- Fixtures for
FrontendModelConfigandFrontendConfigDashboardforms - CRUD permissions for
FrontendModelConfig
Fixed¶
- Circular type reference in
convert_to_frontend_configno longer causes infinite recursion
v0.8.4 - 2026-04-10¶
Added¶
paginationandsortfields onFrontendConfigDashboardElementfor table dashboard elements, enabling server-side pagination and sorting contracts between the frontend and data source transactions
v0.8.3 - 2026-04-10¶
Added¶
AuditMixinfor automatic audit tracking: created_by, updated_by, action, and field-level changes diff__auto_managed_fields__mechanism andget_auto_managed_fields()helper for excluding service fields from frontend formsstamp_timestamp()andstamp_audit()public methods for manual stamping in bulk operationshide_default_buttonsfield inFrontendControlConfig
Changed¶
- Frontend configs conversion now uses
get_auto_managed_fields()instead of hardcodedTimestampMixincheck
v0.8.2 - 2026-03-30¶
Added¶
- custom_css field added in frontend configs
Fixed¶
- Fixed
File.storageproperty to handle missing_storagePrivateAttr on migration-compiled classes - Fixed
File.storageto resolvestorage_addressdict toReferencefor 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_ANYconstant and scope-based logic withhas_admin_permissionsandhas_permissionsfunctions - Updated migrations for
LoginSessionandMFADevice
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
Annotatedtypes earlier in the conversion function to ensure proper handling.
v0.5.17 - 2025-10-10¶
Fixed¶
- Handle
created_atfield correctly inpre_updateandapre_updatemethods ofTimestampMixinto 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_atandupdated_atfields from frontend configurations for models that do not inherit fromTimestampMixin
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_atandupdated_atfields.
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
uniquefields
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
authcontrib 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)