Skip to content

Releases: Titan-Systems/titan

v0.10.13

13 Nov 18:34
Compare
Choose a tag to compare

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

07 Nov 02:08
Compare
Choose a tag to compare

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

31 Oct 02:42
Compare
Choose a tag to compare

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

29 Oct 19:26
a7851d1
Compare
Choose a tag to compare

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 with for_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

25 Sep 18:03
Compare
Choose a tag to compare

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

18 Sep 03:13
20b9776
Compare
Choose a tag to compare

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 to PUBLIC schema are non-standard, even if technically allowed by Snowflake.
  • Blueprint run_mode SYNC-ALL has been deprecated, use SYNC instead.
  • User property user_type has been renamed to type (#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

06 Aug 00:51
Compare
Choose a tag to compare

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

26 Jul 23:11
Compare
Choose a tag to compare

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

26 Jul 01:13
Compare
Choose a tag to compare

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

20 Jul 00:12
Compare
Choose a tag to compare

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