From 9e82264cebf64497ab99940c6deb5b13da8a4793 Mon Sep 17 00:00:00 2001 From: Kamil Raczycki Date: Fri, 14 Mar 2025 02:37:20 +0100 Subject: [PATCH] feat: add DuckDB to onprem/database (#1119) --- diagrams/onprem/database.py | 4 ++++ docs/nodes/onprem.md | 3 +++ resources/onprem/database/duckdb.png | Bin 0 -> 7324 bytes .../img/resources/onprem/database/duckdb.png | Bin 0 -> 7324 bytes 4 files changed, 7 insertions(+) create mode 100644 resources/onprem/database/duckdb.png create mode 100644 website/static/img/resources/onprem/database/duckdb.png diff --git a/diagrams/onprem/database.py b/diagrams/onprem/database.py index 40ed89ca..c51346c0 100644 --- a/diagrams/onprem/database.py +++ b/diagrams/onprem/database.py @@ -36,6 +36,10 @@ class Druid(_Database): _icon = "druid.png" +class Duckdb(_Database): + _icon = "duckdb.png" + + class Hbase(_Database): _icon = "hbase.png" diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 948b9112..3796759a 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -203,6 +203,9 @@ Node classes list of the onprem provider. Druid **diagrams.onprem.database.Druid** +Duckdb +**diagrams.onprem.database.Duckdb** + Hbase **diagrams.onprem.database.Hbase**, **HBase** (alias) diff --git a/resources/onprem/database/duckdb.png b/resources/onprem/database/duckdb.png new file mode 100644 index 0000000000000000000000000000000000000000..4c923a73a64418104f6ed939fd1b819d6bf4f0d5 GIT binary patch literal 7324 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 Nrbgz5@BTwa{SStWu9W}) literal 0 HcmV?d00001 diff --git a/website/static/img/resources/onprem/database/duckdb.png b/website/static/img/resources/onprem/database/duckdb.png new file mode 100644 index 0000000000000000000000000000000000000000..4c923a73a64418104f6ed939fd1b819d6bf4f0d5 GIT binary patch literal 7324 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 Nrbgz5@BTwa{SStWu9W}) literal 0 HcmV?d00001