Releases: Titan-Systems/titan
Releases · Titan-Systems/titan
v0.10.13
What's Changed
- [CHORE] test account github workflow by @teej in #146
- [CHORE] test account automation by @teej in #148
- [CHORE] blacksmith.sh: Migrate workflows to Blacksmith by @blacksmith-sh in #149
- [CHORE] tests and docs by @teej in #150
- [BUGFIX] share ownership by @teej in #151
Full Changelog: v0.10.8...v0.10.13
v0.10.8
What's Changed
- [BUGFIX] fix grants on multi word resource types by @teej in #141
- [CHORE] add grant_on_all docstring by @rcohngru-ab-carval in #142
- [BUGFIX]: add synonyms for business critical account edition by @rcohngru in #144
- [BUGFIX] Fix issue with DatabaseRoles not allowed with grants by @teej in #145
New Contributors
Full Changelog: v0.10.4...v0.10.8
v0.10.4
What's Changed
- Fixed an issue where planning would fail to find resources, causing unexpected drift
- Added ScannerPackage resource
- CLI
--config
now accepts a path in addition to a filename --config
option now respects.titanignore
file. This file uses.gitignore
syntax- Tests now run on GCP accounts in addition to AWS
Full Changelog: v0.10.0...v0.10.4
v0.10.0
What's Changed
Breaking changes
- None
New Features
- Added
--allowlist
to CLI commands - Added experimental new feature
for_each
. YAML-defined resources can now be generated dynamically withfor_each
.
-- titan.yml
vars:
- name: schemas
type: list
default:
- schema1
- schema2
roles:
- for_each: var.schemas
name: "AR_{{ each.value }}_ROLE"
titan plan --config titan.yml --vars '{"schemas": ["DEV", "PROD"]}'
- Added experimental new feature
scope
. This allows you to limit a config to a single database or single schema. Some details of this feature may be changed in the future.
One way to use this is to apply a single config to multiple schemas. For example:
-- titan.yml
scope: SCHEMA
database: STATIC_DATABASE
tables:
- name: my_table
columns:
- name: my_column
data_type: string
views:
- name: my_view
as_: SELECT * FROM my_table
requires:
- name: my_table
resource_type: TABLE
titan apply --config titan.yml --schema=DEV_TJ
titan apply --config titan.yml --schema=PROD
Resources
- Added a new resource type:
AccountParameter
- Add export support for Future Grants (#118)
Bugfixes
- Fixed an issue where vars could not be used to name a database (#124)
- Fixed an issue where
apply
CLI would fail if using a pre-defined plan - Fixed an issue where Network Grants could not be synced or exported
Performance Improvements
- Use internal Snowflake API for account type detection instead of the slow SHOW TAGS command (#95)
- Dynamic role selection no longer requires running SHOW GRANTS for every role in session (#122)
New Contributors
Thanks to @dwreeves for contributing comprehensive type checking and @toadies, @nialloriordan, @michael-lemiale, @dsmdavid, @aleenprd, @pikachuev for bug reports!
Special thanks to @littleK0i for helping out with Snowflake system commands.
Full Changelog: v0.9.1...v0.10.0
v0.9.1
What's Changed
- Fixes an issue where specifying run mode on the command line didn't work
- Fixes an issue with Warehouses not working on Standard-edition Snowflake accounts
- Fixes an issue with resources being dropped out-of-order in sync mode
- Fixes an issue with drift related to public schemas
- Fixes an issue with the
COMMENT
property rendering to SQL incorrectly - Fixes an issue related to creating Database Roles
- Fixes an issue related to specifying column names without data types for Views
Full Changelog: v0.9.0...v0.9.1
v0.9.0
What's Changed
Breaking Changes
- Titan no longer supports modifications to
PUBLIC
schema. This behavior was previously supported but caused a number of bugs. Changes toPUBLIC
schema are non-standard, even if technically allowed by Snowflake. - Blueprint run_mode
SYNC-ALL
has been deprecated, useSYNC
instead. - User property
user_type
has been renamed totype
(#92) - Table resource now ignores changes to columns by default. This is designed to prevent data loss by default
- Some old deprecated modules have been removed.
New Features
- YAML config now supports the alias "grants_on_all" for
GrantOnAll
resources. (#94) - vars. Titan now supports
vars
in both Python and YAML configs. To use a var with a resource:
titan.yml
vars:
- name: foobar
type: string
default: some_default_value
sensitive: true
databases:
- name: "db_{{ var.foobar }}"
titan plan --config titan.yml --vars '{"foobar": "blimblam"}'
titan plan --config titan.yml --vars 'foobar: blimblam'
Python
from titan.blueprint import Blueprint
from titan import var
# Deferred style
db = Database(name=var.foobar)
# Interpolation style
db = Database(name="db_{{var.foobar}}")
Blueprint(resources=[db], vars={"foobar": "blimblam"})
Bugfixes
- Sync mode not available in CLI (#107)
- Some array props did not render correctly to SQL when the resource was updated (#100)
- User type property does not render to SQL correctly when updating (#92)
- Resources that rely on other resources were not rendering to SQL with the fully qualified name of the other resource (#98)
- Wrong order of keywords on creating transient database (#97)
- Database roles cannot be specified as owners (#96)
Resources
- Iceberg Table (#111). This only supports a single variant, more to come in a later release.
- External Volume
Other
- jinja2 has been added as a dependency. I personally apologize.
Full Changelog: v0.8.9...v0.9.0
v0.8.9
What's Changed
- fix image repo fetch when database doesnt exist by @titan-teej in #93
Full Changelog: v0.8.8...v0.8.9
v0.8.8
What's Changed
- Fix a crash when attempting to
export --all
on a trial account - Fixed an issue when exporting databases and tables where resources of the wrong type were being exported
- Export no longer attempts to export database shares
Full Changelog: v0.8.7...v0.8.8
v0.8.7
What's Changed
- Improved performance of
export
CLI for accounts with many resources, particularly grants
Full Changelog: v0.8.6...v0.8.7
v0.8.6
What's Changed
- Added new resources: Notebook, NetworkPolicy
- Added a new example: UNC5537-account-hardening
- Added support for the new User field
user_type
- Grant will now raise an error if used with the OWNERSHIP priv
- Fixed issues with CSVFileFormat, MaterializedView, GrantOnAll,
- Fixed multiple issues related to databases named
DATABASE
(please dont do this) - Fixed drift issues with tags and resources with column fields
- Improved test coverage for drift-after-apply problems
- Automated some internals around privilege type checking
Thanks to @toadies and @noel for the bug reports!
Full Changelog: v0.8.5...v0.8.6