Compare commits

...

1 Commits

Author SHA1 Message Date
dan sutton
d8023046f2 tenants iteration
to run:

psql from the metabase directory:

```sql
\i tenants.sql
DROP TABLE
CREATE TABLE
INSERT 0 3
```

and api usage:

```shell
// create
❯ http post localhost:3000/api/tenant/ x-api-key:$APIKEY name="jet" -pb
{
    "created_at": "2025-05-16T22:05:58.533144Z",
    "id": 4,
    "name": "jet"
}

// list
❯ http get localhost:3000/api/tenant/ x-api-key:$APIKEY -pb
[
    {
        "created_at": "2025-05-16T22:05:51.587944Z",
        "id": 1,
        "name": "pizza hut"
    },
    {
        "created_at": "2025-05-16T22:05:51.587944Z",
        "id": 2,
        "name": "dominoes"
    },
    {
        "created_at": "2025-05-16T22:05:51.587944Z",
        "id": 3,
        "name": "papa johns"
    },
    {
        "created_at": "2025-05-16T22:05:58.533144Z",
        "id": 4,
        "name": "jet"
    }
]

// update
❯ http put localhost:3000/api/tenant/4 x-api-key:$APIKEY name="via313" -pb
1
```
2025-05-16 17:07:53 -05:00
4 changed files with 42 additions and 0 deletions

View File

@@ -48,6 +48,7 @@
[metabase.sso.api]
[metabase.sync.api]
[metabase.task-history.api]
[metabase.tenant.api]
[metabase.testing-api.api]
[metabase.testing-api.core]
[metabase.tiles.api]
@@ -88,6 +89,7 @@
metabase.settings.api/keep-me
metabase.setup.api/keep-me
metabase.task-history.api/keep-me
metabase.tenant.api/keep-me
metabase.testing-api.api/keep-me
metabase.tiles.api/keep-me
metabase.upload.api/keep-me
@@ -176,6 +178,7 @@
"/slack" (+auth metabase.channel.api/slack-routes)
"/table" (+auth 'metabase.api.table)
"/task" (+auth 'metabase.task-history.api)
"/tenant" (+auth 'metabase.tenant.api)
"/testing" (if metabase.testing-api.core/enable-testing-routes? 'metabase.testing-api.api pass-thru-handler)
"/tiles" (+auth 'metabase.tiles.api)
"/timeline" (+auth metabase.timeline.api/timeline-routes)

View File

@@ -77,6 +77,7 @@
:model/Setting metabase.settings.models.setting
:model/Table metabase.models.table
:model/TaskHistory metabase.task-history.models.task-history
:model/Tenant metabase.tenant.models.tenant
:model/Timeline metabase.timeline.models.timeline
:model/TimelineEvent metabase.timeline.models.timeline-event
:model/User metabase.models.user

View File

@@ -0,0 +1,29 @@
(ns metabase.tenant.api
(:require
[metabase.api.common :as api]
[metabase.api.macros :as api.macros]
[metabase.util.malli.schema :as ms]
[metabase.tenant.models.tenant]
[toucan2.core :as t2]))
(api.macros/defendpoint :get "/"
"list em"
[_route-params
_query-params
_body]
(t2/select :model/Tenant))
(api.macros/defendpoint :post "/"
"Create a new tenant"
[_route-params
_query-params
body]
(t2/insert-returning-instance! :model/Tenant body))
(api.macros/defendpoint :put "/:id"
"Create a new tenant"
[{:keys [id]} :- [:map [:id ms/PositiveInt]]
_query-params
body ]
(api/check-404 (t2/select-one :model/Tenant :id id))
(t2/update! :model/Tenant id body))

View File

@@ -0,0 +1,9 @@
(ns metabase.tenant.models.tenant
(:require
[methodical.core :as methodical]
[toucan2.core :as t2]))
(methodical/defmethod t2/table-name :model/Tenant [_model] :tenant)
(doto :model/Tenant
(derive :metabaes/model))