Compare commits
232 Commits
python-run
...
v1.49.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46c668b1e5 | ||
|
|
1fb7f2ed23 | ||
|
|
de85991f46 | ||
|
|
6b1e6c2834 | ||
|
|
98ad72fd21 | ||
|
|
8de04e5955 | ||
|
|
d58427a16b | ||
|
|
98f515340c | ||
|
|
9ddc2f85d2 | ||
|
|
0a1e15d2a5 | ||
|
|
01d8e7da2c | ||
|
|
68715370db | ||
|
|
800bc7ed59 | ||
|
|
697c1ebe7e | ||
|
|
20990f2d51 | ||
|
|
04332a321e | ||
|
|
ac24b794d2 | ||
|
|
9a6ed5dc0c | ||
|
|
d9d8144763 | ||
|
|
192ab03265 | ||
|
|
e7ecc32c40 | ||
|
|
66b0ea0ffe | ||
|
|
51faf90a5f | ||
|
|
fa4f7eefed | ||
|
|
84b1a50111 | ||
|
|
37c230994f | ||
|
|
74848ea392 | ||
|
|
10f8f28502 | ||
|
|
89a70d2635 | ||
|
|
4479481c15 | ||
|
|
738830a8d1 | ||
|
|
e9a2c76160 | ||
|
|
74fe6f1476 | ||
|
|
ec26ab86e1 | ||
|
|
27bc214a7f | ||
|
|
fbef7476a7 | ||
|
|
afea09c51c | ||
|
|
34bf1502c3 | ||
|
|
e9804c8494 | ||
|
|
949919a324 | ||
|
|
b688f13542 | ||
|
|
4534c4b8b9 | ||
|
|
0d0754a942 | ||
|
|
b86e448262 | ||
|
|
fff6f7581a | ||
|
|
21b33fb105 | ||
|
|
2f496dcacb | ||
|
|
33ea19c067 | ||
|
|
f365bfa161 | ||
|
|
1a57a2eda5 | ||
|
|
9c86e08b40 | ||
|
|
4e7c5aa8ca | ||
|
|
1310c156ab | ||
|
|
26d2282ba5 | ||
|
|
8c61c05927 | ||
|
|
1a70d69542 | ||
|
|
0a1f97fa00 | ||
|
|
f64d78bb8d | ||
|
|
1fd647f723 | ||
|
|
3b4cc24d89 | ||
|
|
c19758d90a | ||
|
|
df9cd726d3 | ||
|
|
5e616b8b84 | ||
|
|
5dd99ff2d5 | ||
|
|
8506b7be8c | ||
|
|
a3ced40f20 | ||
|
|
fe364046fe | ||
|
|
161857a357 | ||
|
|
52b96c514e | ||
|
|
19d11bfe78 | ||
|
|
a3d75d0b98 | ||
|
|
105b479127 | ||
|
|
f34f3d9300 | ||
|
|
dc7a1cbc23 | ||
|
|
7142d3cf15 | ||
|
|
1ac3a8a5d2 | ||
|
|
447245dbf1 | ||
|
|
5c7356d81d | ||
|
|
5ce81a0e4f | ||
|
|
d3e97949d1 | ||
|
|
745c09c557 | ||
|
|
aa9785a6fb | ||
|
|
c4f82f8e09 | ||
|
|
6bd6173c8f | ||
|
|
139b976702 | ||
|
|
941fa35235 | ||
|
|
446a6ccf14 | ||
|
|
c924d704f4 | ||
|
|
610798bc09 | ||
|
|
d768070a80 | ||
|
|
38e9a6a798 | ||
|
|
800418ba73 | ||
|
|
5c4802401a | ||
|
|
3b223e4571 | ||
|
|
96c009a491 | ||
|
|
4a4047db19 | ||
|
|
7fff43c5e8 | ||
|
|
eb9a9a9034 | ||
|
|
31c4c29955 | ||
|
|
18613f250f | ||
|
|
bf40eb56fb | ||
|
|
4e82659eec | ||
|
|
8c0803d049 | ||
|
|
261e58f67e | ||
|
|
a7da942461 | ||
|
|
fe7d1b0b29 | ||
|
|
850909a1e1 | ||
|
|
6ebf7b6379 | ||
|
|
2777fd3e18 | ||
|
|
c95e830651 | ||
|
|
46851324c0 | ||
|
|
bef7bde7eb | ||
|
|
75ba0eec66 | ||
|
|
eb85db36a5 | ||
|
|
93af623cbc | ||
|
|
68d7e82a9c | ||
|
|
ba23132d4b | ||
|
|
313d3e786f | ||
|
|
690a906109 | ||
|
|
7cf8317125 | ||
|
|
ce6f4a1768 | ||
|
|
924802c105 | ||
|
|
c19b3f8a03 | ||
|
|
84d364788c | ||
|
|
8e7b01d6a8 | ||
|
|
aafa9ae333 | ||
|
|
9a3ae84455 | ||
|
|
8b4d6083b6 | ||
|
|
c621c58400 | ||
|
|
ca5d0e2844 | ||
|
|
6ab66e940a | ||
|
|
c6a236b5d2 | ||
|
|
07262ba0ee | ||
|
|
2fdce0cb3a | ||
|
|
b1fcf5bf45 | ||
|
|
7d3476ced0 | ||
|
|
1e0c3beb97 | ||
|
|
d104d1091e | ||
|
|
3ef28bfee8 | ||
|
|
40bf237c65 | ||
|
|
db89d6a48c | ||
|
|
29d32a643b | ||
|
|
def9a9afac | ||
|
|
3dc7f8e190 | ||
|
|
35ad110c7c | ||
|
|
6ec581a48e | ||
|
|
e7ee72a913 | ||
|
|
82977364d1 | ||
|
|
5f8e80f6c2 | ||
|
|
d5a366c145 | ||
|
|
a0f31c8078 | ||
|
|
d8fa3a15eb | ||
|
|
b9a8d8060a | ||
|
|
9fb4a2d04b | ||
|
|
7f10f8d101 | ||
|
|
2141db363d | ||
|
|
73c9eb657a | ||
|
|
710c28af37 | ||
|
|
b7d4567df3 | ||
|
|
88257264e4 | ||
|
|
c18c3f0d21 | ||
|
|
74d823a52f | ||
|
|
f9abe816ee | ||
|
|
2032c4e5eb | ||
|
|
1f3b5ff4ad | ||
|
|
61fb9fa56e | ||
|
|
5cbe86b590 | ||
|
|
213d77ff9b | ||
|
|
740815f62f | ||
|
|
72e72c213e | ||
|
|
4c58e51cc5 | ||
|
|
7977ac73e0 | ||
|
|
6a9eb3ba2f | ||
|
|
db5f8a31db | ||
|
|
a6f0c77050 | ||
|
|
85d542b87b | ||
|
|
1176841f1c | ||
|
|
6e9d76366d | ||
|
|
7e375f8996 | ||
|
|
85bf128a4d | ||
|
|
7e6ddd29ba | ||
|
|
d3f4ce1e91 | ||
|
|
b27f2e54e5 | ||
|
|
8e401553ce | ||
|
|
f850a0bd67 | ||
|
|
01ec5e0dc2 | ||
|
|
9cff87e751 | ||
|
|
1b60fb8b8d | ||
|
|
0360b33ec4 | ||
|
|
2e0e408d87 | ||
|
|
1ba01cd6a4 | ||
|
|
f24898287b | ||
|
|
29303fbdbd | ||
|
|
5f363b2895 | ||
|
|
aea2cb22dc | ||
|
|
c37c5d72c0 | ||
|
|
787e7103cd | ||
|
|
21280aa98e | ||
|
|
6049f2cd17 | ||
|
|
085ace19e5 | ||
|
|
3ec33cb174 | ||
|
|
8ad093146f | ||
|
|
0e741ed12c | ||
|
|
ee1964aa60 | ||
|
|
9d430dc61b | ||
|
|
81d80ec725 | ||
|
|
3871912514 | ||
|
|
0fa6e099f3 | ||
|
|
a5b25d9763 | ||
|
|
a0b17a6ea9 | ||
|
|
6d84263d30 | ||
|
|
821272a2d6 | ||
|
|
221b2706fb | ||
|
|
99fb507ddc | ||
|
|
1982c9261a | ||
|
|
61fa5ebe80 | ||
|
|
549c611191 | ||
|
|
2515d579b4 | ||
|
|
0304aed4b3 | ||
|
|
b369f51757 | ||
|
|
c86c4d8152 | ||
|
|
cd8d3fa8cd | ||
|
|
79a17dd809 | ||
|
|
ad274def9e | ||
|
|
88122c8501 | ||
|
|
f499d0e15c | ||
|
|
8a571ac310 | ||
|
|
1730e3d022 | ||
|
|
3d86160fdf | ||
|
|
a062514a11 | ||
|
|
52b5e42d3d | ||
|
|
943d1e1734 |
@@ -43,6 +43,9 @@
|
||||
methodical.core/remove-aux-method-with-unique-key!
|
||||
next.jdbc/execute!
|
||||
|
||||
;; Definitely thread safe
|
||||
metabase.test.util.dynamic-redefs/patch-vars!
|
||||
|
||||
;; TODO: most of these symbols shouldn't be here, we should go through them and
|
||||
;; find the functions/macros that use them and make sure their names end with !
|
||||
;; best way to do this is try remove each of these and rely on kondo output to find places where it's used
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
metabot-prompt-generator-token-limit
|
||||
multi-setting-read-only
|
||||
notification-link-base-url
|
||||
no-surveys
|
||||
num-metabot-choices
|
||||
openai-api-key
|
||||
openai-available-models
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
frontend/src/cljs
|
||||
frontend/src/cljs_release
|
||||
e2e/support/cypress_sample_database.js
|
||||
e2e/support/cypress_sample_instance_data.js
|
||||
|
||||
43
.eslintrc
@@ -36,41 +36,14 @@
|
||||
"import/order": [
|
||||
"error",
|
||||
{
|
||||
"pathGroups": [
|
||||
{
|
||||
"pattern": "react",
|
||||
"group": "builtin",
|
||||
"position": "before"
|
||||
},
|
||||
{
|
||||
"pattern": "metabase/**",
|
||||
"group": "internal"
|
||||
},
|
||||
{
|
||||
"pattern": "metabase/**/components",
|
||||
"group": "internal",
|
||||
"position": "before"
|
||||
},
|
||||
{
|
||||
"pattern": "__**",
|
||||
"group": "internal",
|
||||
"position": "before"
|
||||
},
|
||||
{
|
||||
"pattern": "metabase-lib/**",
|
||||
"group": "internal",
|
||||
"position": "after"
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
"builtin",
|
||||
"external",
|
||||
"internal",
|
||||
"parent",
|
||||
"sibling",
|
||||
"index",
|
||||
"object"
|
||||
]
|
||||
"newlines-between": "always",
|
||||
"alphabetize": {
|
||||
"order": "asc",
|
||||
"orderImportKind": "asc",
|
||||
"caseInsensitive": false
|
||||
},
|
||||
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
|
||||
"warnOnUnassignedImports": false
|
||||
}
|
||||
],
|
||||
"no-console": [2, { "allow": ["warn", "error"] }],
|
||||
|
||||
1
.github/file-paths.yaml
vendored
@@ -93,6 +93,7 @@ e2e_ci: &e2e_ci
|
||||
|
||||
e2e_specs: &e2e_specs
|
||||
- "**/*.cy.*.js"
|
||||
- "**/*.cy.*.ts"
|
||||
- "e2e/runner/**"
|
||||
- "e2e/support/**"
|
||||
- "e2e/snapshot*/**"
|
||||
|
||||
17
.github/team.json
vendored
@@ -15,16 +15,12 @@
|
||||
{
|
||||
"name": "Embedding",
|
||||
"label": ".Team/Embedding",
|
||||
"members": [
|
||||
"WiNloSt",
|
||||
"deniskaber",
|
||||
"oisincoveney",
|
||||
"npretto"
|
||||
]
|
||||
"members": ["WiNloSt", "deniskaber", "oisincoveney", "npretto"]
|
||||
},
|
||||
{
|
||||
"name": "BEC",
|
||||
"label": ".Team/BackendComponents",
|
||||
"projectUrl": "https://github.com/orgs/metabase/projects/50/views/1",
|
||||
"members": [
|
||||
"tsmacdonald",
|
||||
"qnkhuat",
|
||||
@@ -36,13 +32,8 @@
|
||||
{
|
||||
"name": "Query Processor",
|
||||
"label": ".Team/QueryProcessor",
|
||||
"members": [
|
||||
"camsaul",
|
||||
"snoe",
|
||||
"bshepherdson",
|
||||
"metamben",
|
||||
"lbrdnk"
|
||||
]
|
||||
"projectUrl": "https://github.com/orgs/metabase/projects/50/views/1",
|
||||
"members": ["camsaul", "snoe", "bshepherdson", "metamben", "lbrdnk"]
|
||||
},
|
||||
{
|
||||
"name": "Admin Webapp",
|
||||
|
||||
12
.github/workflows/auto-assign.yml
vendored
@@ -30,7 +30,7 @@ jobs:
|
||||
const prNumber = context.payload.pull_request.number;
|
||||
|
||||
if (prAuthor.endsWith('[bot]')) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Assign PR author
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
const team = teamConfig.teams.find(t => t.members.includes(prAuthor));
|
||||
if (!team) {
|
||||
console.log('You are not assigned to any team. If you need one, update .github/team.json');
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(`The label ${team.label} does not exist, create it first`);
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Add team label
|
||||
@@ -66,9 +66,9 @@ jobs:
|
||||
labels: [team.label]
|
||||
});
|
||||
|
||||
return true;
|
||||
return team.projectUrl || null;
|
||||
- uses: actions/add-to-project@v0.5.0
|
||||
if: ${{ fromJSON(steps.auto-assign.outputs.result) }}
|
||||
if: ${{ steps.auto-assign.outputs.result != 'null' }}
|
||||
with:
|
||||
project-url: https://github.com/orgs/metabase/projects/50/views/1
|
||||
project-url: ${{ steps.auto-assign.outputs.result }}
|
||||
github-token: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
:show-docs-arity-on-same-line? true
|
||||
:project-specs [{:project-path "deps.edn"
|
||||
:classpath-cmd ["clojure"
|
||||
"-A:dev:ee:ee-dev:drivers:drivers-dev:build:build/release:build/all"
|
||||
"-A:dev:ee:ee-dev:drivers:drivers-dev:build:build/all"
|
||||
"-Spath"]}]
|
||||
:clean {:ns-inner-blocks-indentation :keep}
|
||||
:linters {:clojure-lsp/unused-public-var {:level :warning
|
||||
|
||||
21
deps.edn
@@ -71,7 +71,6 @@
|
||||
environ/environ {:mvn/version "1.2.0"} ; env vars/Java properties abstraction
|
||||
hiccup/hiccup {:mvn/version "1.0.5"} ; HTML templating
|
||||
inflections/inflections {:mvn/version "0.14.1"} ; Clojure/Script library used for prularizing words
|
||||
info.sunng/ring-jetty9-adapter {:mvn/version "0.22.3"} ; Drop-in replacement for official Ring Jetty adapter. Supports Jetty 11 webserver.
|
||||
instaparse/instaparse {:mvn/version "1.4.12"} ; Make your own parser
|
||||
clj-commons/clj-yaml {:mvn/version "1.0.27"} ; Clojure wrapper for YAML library SnakeYAML
|
||||
io.github.camsaul/toucan2 {:mvn/version "1.0.537"}
|
||||
@@ -89,8 +88,9 @@
|
||||
lambdaisland/uri {:mvn/version "1.19.155"} ; Used by openai-clojure
|
||||
medley/medley {:mvn/version "1.4.0"} ; lightweight lib of useful functions
|
||||
metabase/connection-pool {:mvn/version "1.2.0"} ; simple wrapper around C3P0. JDBC connection pools
|
||||
metabase/saml20-clj {:mvn/version "2.2.4" ; EE SAML integration.
|
||||
:exclusions [org.bouncycastle/bcpkix-jdk15on
|
||||
metabase/saml20-clj {:mvn/version "2.2.7.170"
|
||||
:exclusions [ ; EE SAML integration TODO: bump version when we release the library
|
||||
org.bouncycastle/bcpkix-jdk15on
|
||||
org.bouncycastle/bcprov-jdk15on
|
||||
org.bouncycastle/bcpkix-jdk18on
|
||||
org.bouncycastle/bcprov-jdk18on]}
|
||||
@@ -108,7 +108,7 @@
|
||||
:exclusions [org.slf4j/slf4j-api
|
||||
junit/junit]}
|
||||
net.thisptr/jackson-jq {:mvn/version "1.0.0-preview.20230409"} ; Java implementation of the JQ json query language
|
||||
org.apache.commons/commons-compress {:mvn/version "1.25.0"} ; compression utils
|
||||
org.apache.commons/commons-compress {:mvn/version "1.26.0"} ; compression utils
|
||||
org.apache.commons/commons-lang3 {:mvn/version "3.14.0"} ; helper methods for working with java.lang stuff
|
||||
org.apache.logging.log4j/log4j-1.2-api {:mvn/version "2.22.0"} ; apache logging framework
|
||||
org.apache.logging.log4j/log4j-api {:mvn/version "2.22.0"} ; add compatibility with log4j 1.2
|
||||
@@ -132,7 +132,7 @@
|
||||
org.clj-commons/hickory {:mvn/version "0.7.3" ; Parse HTML into Clojure data structures
|
||||
:exclusions [org.jsoup/jsoup]}
|
||||
org.clojars.pntblnk/clj-ldap {:mvn/version "0.0.17"} ; LDAP client
|
||||
org.clojure/clojure {:mvn/version "1.11.1"}
|
||||
org.clojure/clojure {:mvn/version "1.11.2"}
|
||||
org.clojure/core.async {:mvn/version "1.6.681"
|
||||
:exclusions [org.clojure/tools.reader]}
|
||||
org.clojure/core.logic {:mvn/version "1.0.1"} ; optimized pattern matching library for Clojure
|
||||
@@ -151,7 +151,8 @@
|
||||
org.clojure/tools.namespace {:mvn/version "1.4.4"}
|
||||
org.clojure/tools.reader {:mvn/version "1.3.7"}
|
||||
org.clojure/tools.trace {:mvn/version "0.7.11"} ; function tracing
|
||||
org.eclipse.jetty/jetty-server {:mvn/version "11.0.17"} ; web server
|
||||
org.eclipse.jetty/jetty-server {:mvn/version "11.0.20"} ; web server
|
||||
org.eclipse.jetty.websocket/websocket-jetty-server {:mvn/version "11.0.20"} ; ring-jetty-adapter needs that
|
||||
org.flatland/ordered {:mvn/version "1.15.11"} ; ordered maps & sets
|
||||
org.graalvm.js/js {:mvn/version "22.3.5"} ; JavaScript engine
|
||||
org.jsoup/jsoup {:mvn/version "1.17.2"} ; required by hickory
|
||||
@@ -160,7 +161,7 @@
|
||||
;; The 3.X line of development for mariadb-java-client only supports the jdbc:mariadb protocol, so use 2.X for now.
|
||||
org.mariadb.jdbc/mariadb-java-client {:mvn/version "2.7.10"} ; MySQL/MariaDB driver
|
||||
org.mindrot/jbcrypt {:mvn/version "0.4"} ; Crypto library
|
||||
org.postgresql/postgresql {:mvn/version "42.7.1"} ; Postgres driver
|
||||
org.postgresql/postgresql {:mvn/version "42.7.2"} ; Postgres driver
|
||||
org.quartz-scheduler/quartz {:mvn/version "2.3.2"} ; Quartz job scheduler, provided by quartzite but this is a newer version.
|
||||
org.slf4j/slf4j-api {:mvn/version "2.0.9"} ; abstraction for logging frameworks -- allows end user to plug in desired logging framework at deployment time
|
||||
org.tcrawley/dynapath {:mvn/version "1.1.0"} ; Dynamically add Jars (e.g. Oracle or Vertica) to classpath
|
||||
@@ -171,7 +172,10 @@
|
||||
prismatic/schema {:mvn/version "1.4.1"} ; Data schema declaration and validation library
|
||||
redux/redux {:mvn/version "0.1.4"} ; Utility functions for building and composing transducers
|
||||
riddley/riddley {:mvn/version "0.2.0"} ; code walking lib -- used interally by Potemkin, manifold, etc.
|
||||
ring/ring-core {:mvn/version "1.10.0"} ; web server (Jetty wrapper)
|
||||
ring/ring-core {:mvn/version "1.11.0"} ; HTTP abstraction
|
||||
ring/ring-jetty-adapter {:mvn/version "1.11.0" ; Jetty adapter
|
||||
:exclusions [org.eclipse.jetty/jetty-server
|
||||
org.eclipse.jetty.websocket/websocket-jetty-server]}
|
||||
ring/ring-json {:mvn/version "0.5.1"} ; Ring middleware for reading/writing JSON automatically
|
||||
slingshot/slingshot {:mvn/version "0.12.2"} ; enhanced throw/catch, used by other deps
|
||||
stencil/stencil {:mvn/version "0.5.0"} ; Mustache templates for Clojure
|
||||
@@ -234,6 +238,7 @@
|
||||
jonase/eastwood {:mvn/version "1.4.2" ; inspects namespaces and reports possible problems using tools.analyzer
|
||||
:exclusions
|
||||
[org.ow2.asm/asm-all]}
|
||||
criterium/criterium {:mvn/version "0.4.6"} ; benchmarking library
|
||||
lambdaisland/deep-diff2 {:mvn/version "2.10.211"} ; way better diffs
|
||||
methodical/methodical {:mvn/version "0.15.1"} ; drop-in replacements for Clojure multimethods and adds several advanced features
|
||||
org.clojure/algo.generic {:mvn/version "0.1.3"}
|
||||
|
||||
@@ -5,6 +5,7 @@ redirect_from:
|
||||
- /docs/latest/users-guide
|
||||
- /docs/latest/administration-guide
|
||||
- /docs/latest/operations-guide
|
||||
- /docs/latest/faq
|
||||
---
|
||||
|
||||
# Metabase documentation
|
||||
|
||||
@@ -12,7 +12,7 @@ summary: |
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`action-id`** value must be an integer greater than zero.
|
||||
- **`action-id`** value must be an integer greater than zero.
|
||||
|
||||
## `DELETE /api/action/:id/public_link`
|
||||
|
||||
@@ -20,7 +20,7 @@ Delete the publicly-accessible link to this Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/action/`
|
||||
|
||||
@@ -29,13 +29,13 @@ Returns actions that can be used for QueryActions. By default lists all viewable
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model-id`** nullable value must be an integer greater than zero.
|
||||
- **`model-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/action/:action-id`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`action-id`** value must be an integer greater than zero.
|
||||
- **`action-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/action/:action-id/execute`
|
||||
|
||||
@@ -43,9 +43,9 @@ Fetches the values for filling in execution parameters. Pass PK parameters and v
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`action-id`** value must be an integer greater than zero.
|
||||
- **`action-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** value must be a valid JSON string.
|
||||
- **`parameters`** value must be a valid JSON string.
|
||||
|
||||
## `GET /api/action/public`
|
||||
|
||||
@@ -57,33 +57,33 @@ Create a new action.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`visualization_settings`** nullable map
|
||||
- **`visualization_settings`** nullable map.
|
||||
|
||||
* **`parameters`** nullable sequence of map
|
||||
- **`parameters`** nullable sequence of map.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`error_handle`** nullable string, and must be a valid json-query, something like '.item.title'
|
||||
- **`error_handle`** nullable string, and must be a valid json-query, something like '.item.title'.
|
||||
|
||||
* **`database_id`** nullable value must be an integer greater than zero.
|
||||
- **`database_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`name`** string
|
||||
- **`name`** string.
|
||||
|
||||
* **`response_handle`** nullable string, and must be a valid json-query, something like '.item.title'
|
||||
- **`response_handle`** nullable string, and must be a valid json-query, something like '.item.title'.
|
||||
|
||||
* **`template`** nullable map where {:method -> <enum of GET, POST, PUT, DELETE, PATCH>, :url -> <string with length >= 1>, :body (optional) -> <nullable string>, :headers (optional) -> <nullable string>, :parameters (optional) -> <nullable sequence of map>, :parameter_mappings (optional) -> <nullable map>} with no other keys
|
||||
- **`template`** nullable map where {:method -> <enum of GET, POST, PUT, DELETE, PATCH>, :url -> <string with length >= 1>, :body (optional) -> <nullable string>, :headers (optional) -> <nullable string>, :parameters (optional) -> <nullable sequence of map>, :parameter_mappings (optional) -> <nullable map>} with no other keys.
|
||||
|
||||
* **`type`** nullable Unsupported action type
|
||||
- **`type`** nullable Unsupported action type.
|
||||
|
||||
* **`dataset_query`** nullable map
|
||||
- **`dataset_query`** nullable map.
|
||||
|
||||
* **`model_id`** value must be an integer greater than zero.
|
||||
- **`model_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`kind`** nullable Unsupported implicit action kind
|
||||
- **`kind`** nullable Unsupported implicit action kind.
|
||||
|
||||
* **`parameter_mappings`** nullable map
|
||||
- **`parameter_mappings`** nullable map.
|
||||
|
||||
* **`action`**
|
||||
- **`action`**
|
||||
|
||||
## `POST /api/action/:id/execute`
|
||||
|
||||
@@ -93,11 +93,11 @@ Execute the Action.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable map from <keyword> to <anything>
|
||||
- **`parameters`** nullable map from <keyword> to <anything>.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `POST /api/action/:id/public_link`
|
||||
|
||||
@@ -109,15 +109,15 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/action/:id`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`action`** map where {:archived (optional) -> <nullable boolean>, :database_id (optional) -> <nullable value must be an integer greater than zero.>, :dataset_query (optional) -> <nullable map>, :description (optional) -> <nullable string>, :error_handle (optional) -> <nullable string, and must be a valid json-query, something like '.item.title'>, :kind (optional) -> <nullable Unsupported implicit action kind>, :model_id (optional) -> <nullable value must be an integer greater than zero.>, :name (optional) -> <nullable string>, :parameter_mappings (optional) -> <nullable map>, :parameters (optional) -> <nullable sequence of map>, :response_handle (optional) -> <nullable string, and must be a valid json-query, something like '.item.title'>, :template (optional) -> <nullable map where {:method -> <enum of GET, POST, PUT, DELETE, PATCH>, :url -> <string with length >= 1>, :body (optional) -> <nullable string>, :headers (optional) -> <nullable string>, :parameters (optional) -> <nullable sequence of map>, :parameter_mappings (optional) -> <nullable map>} with no other keys>, :type (optional) -> <nullable Unsupported action type>, :visualization_settings (optional) -> <nullable map>}
|
||||
- **`action`** map where {:archived (optional) -> <nullable boolean>, :database_id (optional) -> <nullable value must be an integer greater than zero.>, :dataset_query (optional) -> <nullable map>, :description (optional) -> <nullable string>, :error_handle (optional) -> <nullable string, and must be a valid json-query, something like '.item.title'>, :kind (optional) -> <nullable Unsupported implicit action kind>, :model_id (optional) -> <nullable value must be an integer greater than zero.>, :name (optional) -> <nullable string>, :parameter_mappings (optional) -> <nullable map>, :parameters (optional) -> <nullable sequence of map>, :response_handle (optional) -> <nullable string, and must be a valid json-query, something like '.item.title'>, :template (optional) -> <nullable map where {:method -> <enum of GET, POST, PUT, DELETE, PATCH>, :url -> <string with length >= 1>, :body (optional) -> <nullable string>, :headers (optional) -> <nullable string>, :parameters (optional) -> <nullable sequence of map>, :parameter_mappings (optional) -> <nullable map>} with no other keys>, :type (optional) -> <nullable Unsupported action type>, :visualization_settings (optional) -> <nullable map>}.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ For users to unsubscribe themselves from the given alert.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/alert/`
|
||||
|
||||
@@ -23,9 +23,9 @@ Fetch alerts which the current user has created or will receive, or all alerts i
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`user_id`** nullable value must be an integer greater than zero.
|
||||
- **`user_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/alert/:id`
|
||||
|
||||
@@ -33,7 +33,7 @@ Fetch an alert by ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/alert/question/:id`
|
||||
|
||||
@@ -41,9 +41,9 @@ Fetch all alerts for the given question (`Card`) id.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** nullable value must be an integer greater than zero.
|
||||
- **`id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `POST /api/alert/`
|
||||
|
||||
@@ -51,17 +51,17 @@ Create a new Alert.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`alert_condition`** enum of rows, goal
|
||||
- **`alert_condition`** enum of rows, goal.
|
||||
|
||||
* **`card`** value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
- **`card`** value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
|
||||
* **`channels`** one or more map
|
||||
- **`channels`** one or more map.
|
||||
|
||||
* **`alert_first_only`** boolean
|
||||
- **`alert_first_only`** boolean.
|
||||
|
||||
* **`alert_above_goal`** nullable boolean
|
||||
- **`alert_above_goal`** nullable boolean.
|
||||
|
||||
* **`new-alert-request-body`**
|
||||
- **`new-alert-request-body`**
|
||||
|
||||
## `PUT /api/alert/:id`
|
||||
|
||||
@@ -69,21 +69,21 @@ Update a `Alert` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`alert_condition`** nullable enum of rows, goal
|
||||
- **`alert_condition`** nullable enum of rows, goal.
|
||||
|
||||
* **`alert_first_only`** nullable boolean
|
||||
- **`alert_first_only`** nullable boolean.
|
||||
|
||||
* **`alert_above_goal`** nullable boolean
|
||||
- **`alert_above_goal`** nullable boolean.
|
||||
|
||||
* **`card`** nullable value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
- **`card`** nullable value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
|
||||
* **`channels`** nullable one or more map
|
||||
- **`channels`** nullable one or more map.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`alert-updates`**
|
||||
- **`alert-updates`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/api-key/`
|
||||
|
||||
@@ -32,7 +32,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `POST /api/api-key/`
|
||||
|
||||
@@ -42,11 +42,11 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group_id`** value must be an integer greater than zero.
|
||||
- **`group_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `PUT /api/api-key/:id`
|
||||
|
||||
@@ -56,13 +56,13 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`group_id`** nullable value must be an integer greater than zero.
|
||||
- **`group_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `PUT /api/api-key/:id/regenerate`
|
||||
|
||||
@@ -72,7 +72,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,11 +14,11 @@ Return an automagic dashboard for entity `entity` with id `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`show`** nullable must equal all, or natural integer
|
||||
- **`show`** nullable must equal all, or natural integer.
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query`
|
||||
|
||||
@@ -28,13 +28,13 @@ Return an automagic dashboard analyzing cell in automagic dashboard for entity
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`cell-query`** value couldn't be parsed as base64 encoded JSON
|
||||
- **`cell-query`** value couldn't be parsed as base64 encoded JSON.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query/compare/:comparison-entity/:comparison-entity-id-or-query`
|
||||
|
||||
@@ -44,17 +44,17 @@ Return an automagic comparison dashboard for cell in automagic dashboard for ent
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`cell-query`** value couldn't be parsed as base64 encoded JSON
|
||||
- **`cell-query`** value couldn't be parsed as base64 encoded JSON.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
* **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc"
|
||||
- **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc".
|
||||
|
||||
* **`comparison-entity-id-or-query`**
|
||||
- **`comparison-entity-id-or-query`**
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query/rule/:prefix/:dashboard-template`
|
||||
|
||||
@@ -63,17 +63,17 @@ Return an automagic dashboard analyzing cell in question with id `id` defined b
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`cell-query`** value couldn't be parsed as base64 encoded JSON
|
||||
- **`cell-query`** value couldn't be parsed as base64 encoded JSON.
|
||||
|
||||
* **`prefix`** invalid value for prefix
|
||||
- **`prefix`** invalid value for prefix.
|
||||
|
||||
* **`dashboard-template`** invalid value for dashboard template name
|
||||
- **`dashboard-template`** invalid value for dashboard template name.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query/rule/:prefix/:dashboard-template/compare/:comparison-entity/:comparison-entity-id-or-query`
|
||||
|
||||
@@ -83,21 +83,21 @@ Return an automagic comparison dashboard for cell in automagic dashboard for ent
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`cell-query`** value couldn't be parsed as base64 encoded JSON
|
||||
- **`cell-query`** value couldn't be parsed as base64 encoded JSON.
|
||||
|
||||
* **`prefix`** invalid value for prefix
|
||||
- **`prefix`** invalid value for prefix.
|
||||
|
||||
* **`dashboard-template`** invalid value for dashboard template name
|
||||
- **`dashboard-template`** invalid value for dashboard template name.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
* **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc"
|
||||
- **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc".
|
||||
|
||||
* **`comparison-entity-id-or-query`**
|
||||
- **`comparison-entity-id-or-query`**
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/compare/:comparison-entity/:comparison-entity-id-or-query`
|
||||
|
||||
@@ -106,15 +106,15 @@ Return an automagic comparison dashboard for entity `entity` with id `id` compar
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
* **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc"
|
||||
- **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc".
|
||||
|
||||
* **`comparison-entity-id-or-query`**
|
||||
- **`comparison-entity-id-or-query`**
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/rule/:prefix/:dashboard-template`
|
||||
|
||||
@@ -122,15 +122,15 @@ Return an automagic dashboard for entity `entity` with id `id` using dashboard-t
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`prefix`** invalid value for prefix
|
||||
- **`prefix`** invalid value for prefix.
|
||||
|
||||
* **`dashboard-template`** invalid value for dashboard template name
|
||||
- **`dashboard-template`** invalid value for dashboard template name.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
## `GET /api/automagic-dashboards/:entity/:entity-id-or-query/rule/:prefix/:dashboard-template/compare/:comparison-entity/:comparison-entity-id-or-query`
|
||||
|
||||
@@ -139,19 +139,19 @@ Return an automagic comparison dashboard for entity `entity` with id `id` using
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** Invalid entity type
|
||||
- **`entity`** Invalid entity type.
|
||||
|
||||
* **`entity-id-or-query`**
|
||||
- **`entity-id-or-query`**
|
||||
|
||||
* **`prefix`** invalid value for prefix
|
||||
- **`prefix`** invalid value for prefix.
|
||||
|
||||
* **`dashboard-template`** invalid value for dashboard template name
|
||||
- **`dashboard-template`** invalid value for dashboard template name.
|
||||
|
||||
* **`show`** invalid show value
|
||||
- **`show`** invalid show value.
|
||||
|
||||
* **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc"
|
||||
- **`comparison-entity`** Invalid comparison entity type. Can only be one of "table", "segment", or "adhoc".
|
||||
|
||||
* **`comparison-entity-id-or-query`**
|
||||
- **`comparison-entity-id-or-query`**
|
||||
|
||||
## `GET /api/automagic-dashboards/database/:id/candidates`
|
||||
|
||||
@@ -159,7 +159,7 @@ Return a list of candidates for automagic dashboards orderd by interestingness.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/automagic-dashboards/model_index/:model-index-id/primary_key/:pk-id`
|
||||
|
||||
@@ -168,9 +168,9 @@ Return an automagic dashboard for an entity detail specified by `entity`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model-index-id`** integer
|
||||
- **`model-index-id`** integer.
|
||||
|
||||
* **`pk-id`** integer
|
||||
- **`pk-id`** integer.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ Delete a bookmark. Will delete a bookmark assigned to the user making the reques
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model`** enum of card, dashboard, collection
|
||||
- **`model`** enum of card, dashboard, collection.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/bookmark/`
|
||||
|
||||
@@ -36,9 +36,9 @@ Create a new bookmark for user.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model`** enum of card, dashboard, collection
|
||||
- **`model`** enum of card, dashboard, collection.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/bookmark/ordering`
|
||||
|
||||
@@ -46,7 +46,7 @@ Sets the order of bookmarks for user.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`orderings`** sequence of map where {:type -> <enum of card, dashboard, collection>, :item_id -> <value must be an integer greater than zero.>}
|
||||
- **`orderings`** sequence of map where {:type -> <enum of card, dashboard, collection>, :item_id -> <value must be an integer greater than zero.>}.
|
||||
|
||||
---
|
||||
|
||||
|
||||
147
docs/api/card.md
@@ -14,7 +14,7 @@ Delete the publicly-accessible link to this Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
## `DELETE /api/card/:id`
|
||||
|
||||
@@ -22,19 +22,20 @@ Delete a Card. (DEPRECATED -- don't delete a Card anymore -- archive it instead.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/card/`
|
||||
|
||||
Get all the Cards. Option filter param `f` can be used to change the set of Cards that are returned; default is
|
||||
`all`, but other options include `mine`, `bookmarked`, `database`, `table`, `using_model` and `archived`. See
|
||||
corresponding implementation functions above for the specific behavior of each filterp option. :card_index.
|
||||
`all`, but other options include `mine`, `bookmarked`, `database`, `table`, `using_model`, `using_metric`,
|
||||
`using_segment`, and `archived`. See corresponding implementation functions above for the specific behavior of each
|
||||
filterp option. :card_index.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`f`** nullable enum of archived, table, using_model, bookmarked, all, mine, database
|
||||
- **`f`** nullable enum of archived, table, using_model, bookmarked, using_segment, all, mine, using_metric, database.
|
||||
|
||||
* **`model_id`** nullable value must be an integer greater than zero.
|
||||
- **`model_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/card/:card-id/params/:param-key/search/:query`
|
||||
|
||||
@@ -47,11 +48,11 @@ Fetch possible values of the parameter whose ID is `:param-key` that contain `:q
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/card/:card-id/params/:param-key/values`
|
||||
|
||||
@@ -62,9 +63,9 @@ Fetch possible values of the parameter whose ID is `:param-key`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/card/:id`
|
||||
|
||||
@@ -72,9 +73,9 @@ Get `Card` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`ignore_view`** nullable boolean
|
||||
- **`ignore_view`** nullable boolean.
|
||||
|
||||
## `GET /api/card/:id/related`
|
||||
|
||||
@@ -82,7 +83,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/card/:id/series`
|
||||
|
||||
@@ -94,13 +95,13 @@ Fetches a list of comptatible series with the card with id `card_id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** integer
|
||||
- **`id`** integer.
|
||||
|
||||
* **`last_cursor`** nullable value must be an integer greater than zero.
|
||||
- **`last_cursor`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`query`** nullable value must be a non-blank string.
|
||||
- **`query`** nullable value must be a non-blank string.
|
||||
|
||||
* **`exclude_ids`** nullable function
|
||||
- **`exclude_ids`** nullable function.
|
||||
|
||||
## `GET /api/card/:id/timelines`
|
||||
|
||||
@@ -108,13 +109,13 @@ Get the timelines for card with ID. Looks up the collection the card is in and u
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include`** nullable must equal events
|
||||
- **`include`** nullable must equal events.
|
||||
|
||||
* **`start`** nullable value must be a valid date string
|
||||
- **`start`** nullable value must be a valid date string.
|
||||
|
||||
* **`end`** nullable value must be a valid date string
|
||||
- **`end`** nullable value must be a valid date string.
|
||||
|
||||
## `GET /api/card/embeddable`
|
||||
|
||||
@@ -131,29 +132,31 @@ Create a new `Card`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`visualization_settings`** Value must be a map.
|
||||
- **`visualization_settings`** Value must be a map.
|
||||
|
||||
* **`parameters`** nullable sequence of parameter must be a map with :id and :type keys
|
||||
- **`parameters`** nullable sequence of parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`dataset`** nullable boolean
|
||||
- **`dataset`** nullable boolean.
|
||||
|
||||
* **`description`** nullable value must be a non-blank string.
|
||||
- **`description`** nullable value must be a non-blank string.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`result_metadata`** nullable :metabase.sync.analyze.query-results/ResultsMetadata
|
||||
- **`result_metadata`** nullable :metabase.sync.analyze.query-results/ResultsMetadata.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`type`** nullable enum of model, question.
|
||||
|
||||
* **`dataset_query`** Value must be a map.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`parameter_mappings`** nullable sequence of parameter_mapping must be a map with :parameter_id and :target keys
|
||||
- **`dataset_query`** Value must be a map.
|
||||
|
||||
* **`display`** value must be a non-blank string.
|
||||
- **`parameter_mappings`** nullable sequence of parameter_mapping must be a map with :parameter_id and :target keys.
|
||||
|
||||
- **`display`** value must be a non-blank string.
|
||||
|
||||
## `POST /api/card/:card-id/persist`
|
||||
|
||||
@@ -162,7 +165,7 @@ Mark the model (card) as persisted. Runs the query and saves it to the database
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/:card-id/public_link`
|
||||
|
||||
@@ -172,7 +175,7 @@ Generate publicly-accessible links for this Card. Returns UUID to be used in pub
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/:card-id/query`
|
||||
|
||||
@@ -180,15 +183,15 @@ Run the query associated with a Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`**
|
||||
- **`parameters`**
|
||||
|
||||
* **`ignore_cache`** nullable boolean
|
||||
- **`ignore_cache`** nullable boolean.
|
||||
|
||||
* **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
- **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_preview`** nullable boolean
|
||||
- **`collection_preview`** nullable boolean.
|
||||
|
||||
## `POST /api/card/:card-id/query/:export-format`
|
||||
|
||||
@@ -199,11 +202,11 @@ Run the query associated with a Card, and return its results as a file in the sp
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `POST /api/card/:card-id/refresh`
|
||||
|
||||
@@ -211,7 +214,7 @@ Refresh the persisted model caching `card-id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/:card-id/unpersist`
|
||||
|
||||
@@ -220,7 +223,7 @@ Unpersist this model. Deletes the persisted table backing the model and all quer
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/:id/copy`
|
||||
|
||||
@@ -228,7 +231,7 @@ Copy a `Card`, with the new name 'Copy of _name_'.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** nullable value must be an integer greater than zero.
|
||||
- **`id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/collections`
|
||||
|
||||
@@ -237,9 +240,9 @@ Bulk update endpoint for Card Collections. Move a set of `Cards` with `card_ids`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card_ids`** sequence of value must be an integer greater than zero.
|
||||
- **`card_ids`** sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/card/from-csv`
|
||||
|
||||
@@ -247,7 +250,7 @@ Create a table and model populated with the values from the attached CSV. Return
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`raw-params`**
|
||||
- **`raw-params`**
|
||||
|
||||
## `POST /api/card/pivot/:card-id/query`
|
||||
|
||||
@@ -255,11 +258,11 @@ Run the query associated with a Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`**
|
||||
- **`parameters`**
|
||||
|
||||
* **`ignore_cache`** nullable boolean
|
||||
- **`ignore_cache`** nullable boolean.
|
||||
|
||||
## `POST /api/card/related`
|
||||
|
||||
@@ -267,7 +270,7 @@ Return related entities for an ad-hoc query.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`query`**
|
||||
- **`query`**
|
||||
|
||||
## `PUT /api/card/:id`
|
||||
|
||||
@@ -275,39 +278,41 @@ Update a `Card`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`collection_preview`** nullable boolean
|
||||
- **`collection_preview`** nullable boolean.
|
||||
|
||||
* **`visualization_settings`** nullable Value must be a map.
|
||||
- **`visualization_settings`** nullable Value must be a map.
|
||||
|
||||
* **`parameters`** nullable sequence of parameter must be a map with :id and :type keys
|
||||
- **`parameters`** nullable sequence of parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`dataset`** nullable boolean
|
||||
- **`dataset`** nullable boolean.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`result_metadata`** nullable :metabase.sync.analyze.query-results/ResultsMetadata
|
||||
- **`result_metadata`** nullable :metabase.sync.analyze.query-results/ResultsMetadata.
|
||||
|
||||
* **`enable_embedding`** nullable boolean
|
||||
- **`enable_embedding`** nullable boolean.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`card-updates`**
|
||||
- **`card-updates`**
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`embedding_params`** nullable value must be a valid embedding params map.
|
||||
- **`type`** nullable enum of model, question.
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`embedding_params`** nullable value must be a valid embedding params map.
|
||||
|
||||
* **`dataset_query`** nullable Value must be a map.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`dataset_query`** nullable Value must be a map.
|
||||
|
||||
* **`display`** nullable value must be a non-blank string.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
- **`display`** nullable value must be a non-blank string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -29,13 +29,13 @@ Fetch a list of all Collections that the current user has read permissions for (
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`exclude-other-user-collections`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`exclude-other-user-collections`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
* **`personal-only`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`personal-only`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/collection/:id`
|
||||
|
||||
@@ -43,7 +43,7 @@ Fetch a specific Collection with standard details added.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/collection/:id/items`
|
||||
|
||||
@@ -57,17 +57,17 @@ Fetch a specific Collection's items with the following options:
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`models`** nullable sequence of enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card, or enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card
|
||||
- **`models`** nullable sequence of enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card, or enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`pinned_state`** nullable enum of is_not_pinned, is_pinned, all
|
||||
- **`pinned_state`** nullable enum of is_not_pinned, is_pinned, all.
|
||||
|
||||
* **`sort_column`** nullable enum of model, name, last_edited_by, last_edited_at
|
||||
- **`sort_column`** nullable enum of model, name, last_edited_by, last_edited_at.
|
||||
|
||||
* **`sort_direction`** nullable enum of desc, asc
|
||||
- **`sort_direction`** nullable enum of desc, asc.
|
||||
|
||||
## `GET /api/collection/:id/timelines`
|
||||
|
||||
@@ -75,11 +75,11 @@ Fetch a specific Collection's timelines.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include`** nullable must equal events
|
||||
- **`include`** nullable must equal events.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
## `GET /api/collection/graph`
|
||||
|
||||
@@ -89,7 +89,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
## `GET /api/collection/root`
|
||||
|
||||
@@ -97,7 +97,7 @@ Return the 'Root' Collection object with standard details added.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
## `GET /api/collection/root/items`
|
||||
|
||||
@@ -117,17 +117,17 @@ Fetch objects that the current user should see at their root level. As mentioned
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`models`** nullable sequence of enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card, or enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card
|
||||
- **`models`** nullable sequence of enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card, or enum of dashboard, dataset, no_models, timeline, snippet, collection, pulse, card.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
* **`pinned_state`** nullable enum of is_not_pinned, is_pinned, all
|
||||
- **`pinned_state`** nullable enum of is_not_pinned, is_pinned, all.
|
||||
|
||||
* **`sort_column`** nullable enum of model, name, last_edited_by, last_edited_at
|
||||
- **`sort_column`** nullable enum of model, name, last_edited_by, last_edited_at.
|
||||
|
||||
* **`sort_direction`** nullable enum of desc, asc
|
||||
- **`sort_direction`** nullable enum of desc, asc.
|
||||
|
||||
## `GET /api/collection/root/timelines`
|
||||
|
||||
@@ -135,9 +135,9 @@ Fetch the root Collection's timelines.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`include`** nullable must equal events
|
||||
- **`include`** nullable must equal events.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
## `GET /api/collection/tree`
|
||||
|
||||
@@ -164,15 +164,15 @@ Similar to `GET /`, but returns Collections in a tree structure, e.g.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`exclude-archived`** nullable boolean
|
||||
- **`exclude-archived`** nullable boolean.
|
||||
|
||||
* **`exclude-other-user-collections`** nullable boolean
|
||||
- **`exclude-other-user-collections`** nullable boolean.
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
* **`shallow`** nullable boolean
|
||||
- **`shallow`** nullable boolean.
|
||||
|
||||
* **`collection-id`** nullable value must be an integer greater than zero.
|
||||
- **`collection-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/collection/`
|
||||
|
||||
@@ -180,15 +180,15 @@ Create a new Collection.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable value must be a non-blank string.
|
||||
- **`description`** nullable value must be a non-blank string.
|
||||
|
||||
* **`parent_id`** nullable value must be an integer greater than zero.
|
||||
- **`parent_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
* **`authority_level`** nullable enum of official
|
||||
- **`authority_level`** nullable enum of official.
|
||||
|
||||
## `PUT /api/collection/:id`
|
||||
|
||||
@@ -196,19 +196,19 @@ Modify an existing Collection, including archiving or unarchiving it, or moving
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable value must be a non-blank string.
|
||||
- **`description`** nullable value must be a non-blank string.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`parent_id`** nullable value must be an integer greater than zero.
|
||||
- **`parent_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`authority_level`** nullable enum of official
|
||||
- **`authority_level`** nullable enum of official.
|
||||
|
||||
* **`collection-updates`**
|
||||
- **`collection-updates`**
|
||||
|
||||
## `PUT /api/collection/graph`
|
||||
|
||||
@@ -219,9 +219,9 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`namespace`** nullable value must be a non-blank string.
|
||||
- **`namespace`** nullable value must be a non-blank string.
|
||||
|
||||
* **`body`** map
|
||||
- **`body`** map.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Delete the publicly-accessible link to this Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
## `DELETE /api/dashboard/:id`
|
||||
|
||||
@@ -24,7 +24,7 @@ Delete a Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/dashboard/`
|
||||
|
||||
@@ -38,7 +38,7 @@ This endpoint is currently unused by the Metabase frontend and may be out of dat
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`f`** nullable enum of all, mine, archived
|
||||
- **`f`** nullable enum of all, mine, archived.
|
||||
|
||||
## `GET /api/dashboard/:dashboard-id/dashcard/:dashcard-id/execute`
|
||||
|
||||
@@ -46,11 +46,11 @@ Fetches the values for filling in execution parameters. Pass PK parameters and v
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** value must be a valid JSON string.
|
||||
- **`parameters`** value must be a valid JSON string.
|
||||
|
||||
## `GET /api/dashboard/:id`
|
||||
|
||||
@@ -58,7 +58,7 @@ Get Dashboard with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/dashboard/:id/params/:param-key/search/:query`
|
||||
|
||||
@@ -73,13 +73,13 @@ Fetch possible values of the parameter whose ID is `:param-key` that contain `:q
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
* **`constraint-param-key->value`**
|
||||
- **`constraint-param-key->value`**
|
||||
|
||||
## `GET /api/dashboard/:id/params/:param-key/values`
|
||||
|
||||
@@ -91,11 +91,11 @@ Fetch possible values of the parameter whose ID is `:param-key`. If the values c
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
* **`constraint-param-key->value`**
|
||||
- **`constraint-param-key->value`**
|
||||
|
||||
## `GET /api/dashboard/:id/related`
|
||||
|
||||
@@ -103,7 +103,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/dashboard/:id/revisions`
|
||||
|
||||
@@ -111,7 +111,7 @@ Fetch `Revisions` for Dashboard with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/dashboard/embeddable`
|
||||
|
||||
@@ -143,9 +143,9 @@ Utility endpoint for powering Dashboard UI. Given some set of `filtered` Field I
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`filtered`** value must be an integer greater than zero., or one or more value must be an integer greater than zero.
|
||||
- **`filtered`** value must be an integer greater than zero., or one or more value must be an integer greater than zero.
|
||||
|
||||
* **`filtering`** nullable value must be an integer greater than zero., or one or more value must be an integer greater than zero.
|
||||
- **`filtering`** nullable value must be an integer greater than zero., or one or more value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/dashboard/public`
|
||||
|
||||
@@ -158,19 +158,19 @@ Create a new Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`parameters`** nullable sequence of parameter must be a map with :id and :type keys
|
||||
- **`parameters`** nullable sequence of parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`_dashboard`**
|
||||
- **`_dashboard`**
|
||||
|
||||
## `POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query`
|
||||
|
||||
@@ -178,13 +178,13 @@ Run the query associated with a Saved Question (`Card`) in the context of a `Das
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable sequence of value must be a parameter map with an id key
|
||||
- **`parameters`** nullable sequence of value must be a parameter map with an id key.
|
||||
|
||||
## `POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query/:export-format`
|
||||
|
||||
@@ -196,17 +196,17 @@ Run the query associated with a Saved Question (`Card`) in the context of a `Das
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
* **`request-parameters`**
|
||||
- **`request-parameters`**
|
||||
|
||||
## `POST /api/dashboard/:dashboard-id/dashcard/:dashcard-id/execute`
|
||||
|
||||
@@ -217,13 +217,13 @@ Execute the associated Action in the context of a `Dashboard` and `DashboardCard
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable map from <keyword> to <anything>
|
||||
- **`parameters`** nullable map from <keyword> to <anything>.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `POST /api/dashboard/:dashboard-id/public_link`
|
||||
|
||||
@@ -235,7 +235,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/dashboard/:from-dashboard-id/copy`
|
||||
|
||||
@@ -243,19 +243,19 @@ Copy a Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`from-dashboard-id`** nullable value must be an integer greater than zero.
|
||||
- **`from-dashboard-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`is_deep_copy`** nullable boolean
|
||||
- **`is_deep_copy`** nullable boolean.
|
||||
|
||||
* **`_dashboard`**
|
||||
- **`_dashboard`**
|
||||
|
||||
## `POST /api/dashboard/:id/revert`
|
||||
|
||||
@@ -263,9 +263,9 @@ Revert a Dashboard to a prior `Revision`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_id`** value must be an integer greater than zero.
|
||||
- **`revision_id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/dashboard/pivot/:dashboard-id/dashcard/:dashcard-id/card/:card-id/query`
|
||||
|
||||
@@ -273,13 +273,13 @@ Run a pivot table query for a specific DashCard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard-id`** value must be an integer greater than zero.
|
||||
- **`dashboard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable sequence of value must be a parameter map with an id key
|
||||
- **`parameters`** nullable sequence of value must be a parameter map with an id key.
|
||||
|
||||
## `POST /api/dashboard/save`
|
||||
|
||||
@@ -287,7 +287,7 @@ Save a denormalized description of dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`dashboard`**
|
||||
- **`dashboard`**
|
||||
|
||||
## `POST /api/dashboard/save/collection/:parent-collection-id`
|
||||
|
||||
@@ -295,9 +295,9 @@ Save a denormalized description of dashboard into collection with ID `:parent-co
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`parent-collection-id`** value must be an integer greater than zero.
|
||||
- **`parent-collection-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashboard`**
|
||||
- **`dashboard`**
|
||||
|
||||
## `PUT /api/dashboard/:id`
|
||||
|
||||
@@ -306,39 +306,41 @@ Update a Dashboard, and optionally the `dashcards` and `tabs` of a Dashboard. Th
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`parameters`** nullable sequence of parameter must be a map with :id and :type keys
|
||||
- **`parameters`** nullable sequence of parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`dashcards`** nullable value must be seq of maps in which ids are unique
|
||||
- **`dashcards`** nullable value must be seq of maps in which ids are unique.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`tabs`** nullable value must be seq of maps in which ids are unique
|
||||
- **`tabs`** nullable value must be seq of maps in which ids are unique.
|
||||
|
||||
* **`show_in_getting_started`** nullable boolean
|
||||
- **`show_in_getting_started`** nullable boolean.
|
||||
|
||||
* **`enable_embedding`** nullable boolean
|
||||
- **`enable_embedding`** nullable boolean.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`dash-updates`**
|
||||
- **`dash-updates`**
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`width`** nullable enum of fixed, full.
|
||||
|
||||
* **`embedding_params`** nullable value must be a valid embedding params map.
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`embedding_params`** nullable value must be a valid embedding params map.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`position`** nullable value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
- **`position`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/dashboard/:id/cards`
|
||||
|
||||
@@ -359,11 +361,11 @@ Update a Dashboard, and optionally the `dashcards` and `tabs` of a Dashboard. Th
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`cards`** value must be seq of maps in which ids are unique
|
||||
- **`cards`** value must be seq of maps in which ids are unique.
|
||||
|
||||
* **`tabs`** nullable value must be seq of maps in which ids are unique
|
||||
- **`tabs`** nullable value must be seq of maps in which ids are unique.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/database/`
|
||||
|
||||
@@ -37,17 +37,17 @@ Fetch all `Databases`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`include`** include must be either empty or the value tables
|
||||
- **`include`** include must be either empty or the value tables.
|
||||
|
||||
* **`saved`** nullable boolean
|
||||
- **`saved`** nullable boolean.
|
||||
|
||||
* **`include_editable_data_model`** nullable boolean
|
||||
- **`include_editable_data_model`** nullable boolean.
|
||||
|
||||
* **`exclude_uneditable_details`** nullable boolean
|
||||
- **`exclude_uneditable_details`** nullable boolean.
|
||||
|
||||
* **`include_only_uploadable`** nullable boolean
|
||||
- **`include_only_uploadable`** nullable boolean.
|
||||
|
||||
* **`include_analytics`** nullable boolean
|
||||
- **`include_analytics`** nullable boolean.
|
||||
|
||||
## `GET /api/database/:id`
|
||||
|
||||
@@ -63,13 +63,13 @@ Get a single Database with `id`. Optionally pass `?include=tables` or `?include=
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include`** nullable enum of tables, tables.fields
|
||||
- **`include`** nullable enum of tables, tables.fields.
|
||||
|
||||
* **`include_editable_data_model`**
|
||||
- **`include_editable_data_model`**
|
||||
|
||||
* **`exclude_uneditable_details`**
|
||||
- **`exclude_uneditable_details`**
|
||||
|
||||
## `GET /api/database/:id/autocomplete_suggestions`
|
||||
|
||||
@@ -85,11 +85,11 @@ Return a list of autocomplete suggestions for a given `prefix`, or `substring`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`prefix`** nullable value must be a non-blank string.
|
||||
- **`prefix`** nullable value must be a non-blank string.
|
||||
|
||||
* **`substring`** nullable value must be a non-blank string.
|
||||
- **`substring`** nullable value must be a non-blank string.
|
||||
|
||||
## `GET /api/database/:id/card_autocomplete_suggestions`
|
||||
|
||||
@@ -99,9 +99,9 @@ Return a list of `Card` autocomplete suggestions for a given `query` in a given
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/database/:id/fields`
|
||||
|
||||
@@ -109,7 +109,7 @@ Get a list of all `Fields` in `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/database/:id/idfields`
|
||||
|
||||
@@ -117,9 +117,9 @@ Get a list of all primary key `Fields` for `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_editable_data_model`**
|
||||
- **`include_editable_data_model`**
|
||||
|
||||
## `GET /api/database/:id/metadata`
|
||||
|
||||
@@ -133,13 +133,13 @@ Get metadata about a `Database`, including all of its `Tables` and `Fields`. Ret
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`remove_inactive`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`remove_inactive`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/database/:id/schema/`
|
||||
|
||||
@@ -147,11 +147,11 @@ Return a list of Tables for a Database whose `schema` is `nil` or an empty strin
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/database/:id/schema/:schema`
|
||||
|
||||
@@ -159,13 +159,13 @@ Returns a list of Tables for the given Database `id` and `schema`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`schema`**
|
||||
- **`schema`**
|
||||
|
||||
## `GET /api/database/:id/schemas`
|
||||
|
||||
@@ -173,11 +173,11 @@ Returns a list of all the schemas with tables found for the database `id`. Exclu
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/database/:id/syncable_schemas`
|
||||
|
||||
@@ -185,7 +185,7 @@ Returns a list of all syncable schemas found for the database `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/database/:id/usage_info`
|
||||
|
||||
@@ -196,7 +196,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/database/:virtual-db/datasets`
|
||||
|
||||
@@ -208,7 +208,7 @@ Returns a list of Tables for the datasets virtual database.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`schema`**
|
||||
- **`schema`**
|
||||
|
||||
## `GET /api/database/:virtual-db/metadata`
|
||||
|
||||
@@ -221,7 +221,7 @@ Returns a list of Tables for the saved questions virtual database.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`schema`**
|
||||
- **`schema`**
|
||||
|
||||
## `GET /api/database/:virtual-db/schemas`
|
||||
|
||||
@@ -235,21 +235,21 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`engine`** value must be a valid database engine.
|
||||
- **`engine`** value must be a valid database engine.
|
||||
|
||||
* **`details`** Value must be a map.
|
||||
- **`details`** Value must be a map.
|
||||
|
||||
* **`is_full_sync`** nullable boolean
|
||||
- **`is_full_sync`** nullable boolean.
|
||||
|
||||
* **`is_on_demand`** nullable boolean
|
||||
- **`is_on_demand`** nullable boolean.
|
||||
|
||||
* **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap
|
||||
- **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap.
|
||||
|
||||
* **`auto_run_queries`** nullable boolean
|
||||
- **`auto_run_queries`** nullable boolean.
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/discard_values`
|
||||
|
||||
@@ -257,7 +257,7 @@ Discards all saved field values for this `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/dismiss_spinner`
|
||||
|
||||
@@ -266,7 +266,7 @@ Manually set the initial sync status of the `Database` and corresponding
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/persist`
|
||||
|
||||
@@ -274,7 +274,7 @@ Attempt to enable model persistence for a database. If already enabled returns a
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/rescan_values`
|
||||
|
||||
@@ -282,7 +282,7 @@ Trigger a manual scan of the field values for this `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/sync_schema`
|
||||
|
||||
@@ -290,7 +290,7 @@ Trigger a manual update of the schema metadata for this `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/:id/unpersist`
|
||||
|
||||
@@ -298,7 +298,7 @@ Attempt to disable model persistence for a database. If already not enabled, jus
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/database/sample_database`
|
||||
|
||||
@@ -314,9 +314,9 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`engine`** value must be a valid database engine.
|
||||
- **`engine`** value must be a valid database engine.
|
||||
|
||||
* **`details`** map
|
||||
- **`details`** map.
|
||||
|
||||
## `PUT /api/database/:id`
|
||||
|
||||
@@ -324,33 +324,33 @@ Update a `Database`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`engine`** nullable value must be a valid database engine.
|
||||
- **`engine`** nullable value must be a valid database engine.
|
||||
|
||||
* **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap
|
||||
- **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap.
|
||||
|
||||
* **`refingerprint`** nullable boolean
|
||||
- **`refingerprint`** nullable boolean.
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`auto_run_queries`** nullable boolean
|
||||
- **`auto_run_queries`** nullable boolean.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`settings`** nullable Value must be a map.
|
||||
- **`settings`** nullable Value must be a map.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`is_full_sync`**
|
||||
- **`is_full_sync`**
|
||||
|
||||
* **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
- **`cache_ttl`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`details`** nullable Value must be a map.
|
||||
- **`details`** nullable Value must be a map.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`is_on_demand`**
|
||||
- **`is_on_demand`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Execute a query and retrieve the results in the usual format. The query will not
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database`** nullable integer
|
||||
- **`database`** nullable integer.
|
||||
|
||||
* **`query`**
|
||||
- **`query`**
|
||||
|
||||
## `POST /api/dataset/:export-format`
|
||||
|
||||
@@ -24,11 +24,11 @@ Execute a query and download the result data as a file in the specified format.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`query`** value must be a valid JSON string.
|
||||
- **`query`** value must be a valid JSON string.
|
||||
|
||||
* **`visualization_settings`** value must be a valid JSON string.
|
||||
- **`visualization_settings`** value must be a valid JSON string.
|
||||
|
||||
## `POST /api/dataset/duration`
|
||||
|
||||
@@ -36,9 +36,9 @@ Get historical query execution duration.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database`**
|
||||
- **`database`**
|
||||
|
||||
* **`query`**
|
||||
- **`query`**
|
||||
|
||||
## `POST /api/dataset/native`
|
||||
|
||||
@@ -46,11 +46,11 @@ Fetch a native version of an MBQL query.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database`** value must be an integer greater than zero.
|
||||
- **`database`** value must be an integer greater than zero.
|
||||
|
||||
* **`pretty`** nullable boolean
|
||||
- **`pretty`** nullable boolean.
|
||||
|
||||
* **`query`**
|
||||
- **`query`**
|
||||
|
||||
## `POST /api/dataset/parameter/search/:query`
|
||||
|
||||
@@ -58,11 +58,11 @@ Return parameter values for cards or dashboards that are being edited. Expects a
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
* **`parameter`** parameter must be a map with :id and :type keys
|
||||
- **`parameter`** parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`field_ids`** nullable sequence of value must be an integer greater than zero.
|
||||
- **`field_ids`** nullable sequence of value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/dataset/parameter/values`
|
||||
|
||||
@@ -70,9 +70,9 @@ Return parameter values for cards or dashboards that are being edited.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`parameter`** parameter must be a map with :id and :type keys
|
||||
- **`parameter`** parameter must be a map with :id and :type keys.
|
||||
|
||||
* **`field_ids`** nullable sequence of value must be an integer greater than zero.
|
||||
- **`field_ids`** nullable sequence of value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/dataset/pivot`
|
||||
|
||||
@@ -80,9 +80,9 @@ Generate a pivoted dataset for an ad-hoc query.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database`** nullable value must be an integer greater than zero.
|
||||
- **`database`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`query`**
|
||||
- **`query`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Fetch rows for the month specified by `:yyyy-mm` from the query_execution logs t
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`yyyy-mm`** Must be a string like 2020-04 or 2222-11.
|
||||
- **`yyyy-mm`** Must be a string like 2020-04 or 2222-11.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/ee/advanced-permissions/impersonation/`
|
||||
|
||||
@@ -27,9 +27,9 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group_id`** nullable value must be an integer greater than zero.
|
||||
- **`group_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`db_id`** nullable value must be an integer greater than zero.
|
||||
- **`db_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -15,7 +15,12 @@ Delete all Alert and DashboardSubscription subscriptions for a User (i.e., so th
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/ee/audit-app/user/audit-info`
|
||||
|
||||
Gets audit info for the current user if he has permissions to access the audit collection.
|
||||
Otherwise return an empty map.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,13 +16,13 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`text`** nullable string
|
||||
- **`text`** nullable string.
|
||||
|
||||
* **`moderated_item_id`** value must be an integer greater than zero.
|
||||
- **`moderated_item_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`moderated_item_type`** enum of card, :card
|
||||
- **`moderated_item_type`** enum of card, :card.
|
||||
|
||||
* **`status`** nullable nullable enum of verified
|
||||
- **`status`** nullable nullable enum of verified.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Delete a GTAP entry.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/mt/gtap/`
|
||||
|
||||
@@ -22,9 +22,9 @@ Fetch a list of all GTAPs currently in use, or a single GTAP if both `group_id`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group_id`** nullable value must be an integer greater than zero.
|
||||
- **`group_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`table_id`** nullable value must be an integer greater than zero.
|
||||
- **`table_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/mt/gtap/:id`
|
||||
|
||||
@@ -32,7 +32,7 @@ Fetch GTAP by `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/mt/gtap/`
|
||||
|
||||
@@ -40,13 +40,13 @@ Create a new GTAP.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`table_id`** value must be an integer greater than zero.
|
||||
- **`table_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card_id`** nullable value must be an integer greater than zero.
|
||||
- **`card_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`group_id`** value must be an integer greater than zero.
|
||||
- **`group_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`attribute_remappings`**
|
||||
- **`attribute_remappings`**
|
||||
|
||||
## `POST /api/mt/gtap/validate`
|
||||
|
||||
@@ -55,9 +55,9 @@ Validate a sandbox which may not have yet been saved. This runs the same validat
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`table_id`** value must be an integer greater than zero.
|
||||
- **`table_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card_id`** nullable value must be an integer greater than zero.
|
||||
- **`card_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/mt/gtap/:id`
|
||||
|
||||
@@ -67,9 +67,9 @@ Update a GTAP entry. The only things you're allowed to update for a GTAP are the
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card_id`** nullable value must be an integer greater than zero.
|
||||
- **`card_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@ This endpoint essentially acts as a wrapper for the OSS version of this route. W
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_sensitive_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_sensitive_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_hidden_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ Update the `login_attributes` for a User.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`login_attributes`** nullable value must be a valid user attributes map (name -> value)
|
||||
- **`login_attributes`** nullable value must be a valid user attributes map (name -> value).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -28,19 +28,19 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`all_collections`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`all_collections`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`collection`** nullable vector of value must be an integer greater than zero.
|
||||
- **`collection`** nullable vector of value must be an integer greater than zero.
|
||||
|
||||
* **`settings`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`settings`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`field_values`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`field_values`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`database_secrets`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`database_secrets`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`dirname`**
|
||||
- **`dirname`**
|
||||
|
||||
## `POST /api/ee/serialization/import`
|
||||
|
||||
@@ -55,7 +55,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`raw-params`**
|
||||
- **`raw-params`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ SSO entry-point for an SSO user that has not logged in yet.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`req`**
|
||||
- **`req`**
|
||||
|
||||
## `POST /auth/sso/`
|
||||
|
||||
@@ -28,7 +28,23 @@ Route the SSO backends call with successful login details.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`req`**
|
||||
- **`req`**
|
||||
|
||||
## `POST /auth/sso/handle_slo`
|
||||
|
||||
Handles client confirmation of saml logout via slo.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
- **`req`**
|
||||
|
||||
## `POST /auth/sso/logout`
|
||||
|
||||
Logout.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
- **`metabase-session-id`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Update multiple email Settings. You must be a superuser or have `setting` permis
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`settings`** map
|
||||
- **`settings`** map.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Fetch a Card via a JSON Web Token signed with the `embedding-secret-key`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
## `GET /api/embed/card/:token/field/:field-id/remapping/:remapped-id`
|
||||
|
||||
@@ -55,13 +55,13 @@ Fetch remapped Field values. This is the same as `GET /api/field/:id/remapping/:
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`remapped-id`** value must be an integer greater than zero.
|
||||
- **`remapped-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/embed/card/:token/field/:field-id/search/:search-field-id`
|
||||
|
||||
@@ -69,15 +69,15 @@ Search for values of a Field that is referenced by an embedded Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`search-field-id`** value must be an integer greater than zero.
|
||||
- **`search-field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
* **`limit`** nullable value must be an integer greater than zero.
|
||||
- **`limit`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/embed/card/:token/field/:field-id/values`
|
||||
|
||||
@@ -85,9 +85,9 @@ Fetch FieldValues for a Field that is referenced by an embedded Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/embed/card/:token/params/:param-key/search/:prefix`
|
||||
|
||||
@@ -95,11 +95,11 @@ Embedded version of chain filter search endpoint.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
* **`prefix`**
|
||||
- **`prefix`**
|
||||
|
||||
## `GET /api/embed/card/:token/params/:param-key/values`
|
||||
|
||||
@@ -107,9 +107,9 @@ Embedded version of api.card filter values endpoint.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
## `GET /api/embed/card/:token/query`
|
||||
|
||||
@@ -122,11 +122,11 @@ Fetch the results of running a Card using a JSON Web Token signed with the `embe
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/card/:token/query/:export-format`
|
||||
|
||||
@@ -134,11 +134,11 @@ Like `GET /api/embed/card/query`, but returns the results as a file in the speci
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/dashboard/:token`
|
||||
|
||||
@@ -150,7 +150,7 @@ Fetch a Dashboard via a JSON Web Token signed with the `embedding-secret-key`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
## `GET /api/embed/dashboard/:token/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -159,15 +159,15 @@ Fetch the results of running a Card belonging to a Dashboard using a JSON Web To
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/dashboard/:token/dashcard/:dashcard-id/card/:card-id/:export-format`
|
||||
|
||||
@@ -176,15 +176,15 @@ Fetch the results of running a Card belonging to a Dashboard using a JSON Web To
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/dashboard/:token/field/:field-id/remapping/:remapped-id`
|
||||
|
||||
@@ -193,13 +193,13 @@ Fetch remapped Field values. This is the same as `GET /api/field/:id/remapping/:
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`remapped-id`** value must be an integer greater than zero.
|
||||
- **`remapped-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/embed/dashboard/:token/field/:field-id/search/:search-field-id`
|
||||
|
||||
@@ -207,15 +207,15 @@ Search for values of a Field that is referenced by a Card in an embedded Dashboa
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`search-field-id`** value must be an integer greater than zero.
|
||||
- **`search-field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
* **`limit`** nullable value must be an integer greater than zero.
|
||||
- **`limit`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/embed/dashboard/:token/field/:field-id/values`
|
||||
|
||||
@@ -223,9 +223,9 @@ Fetch FieldValues for a Field that is used as a param in an embedded Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/embed/dashboard/:token/params/:param-key/search/:prefix`
|
||||
|
||||
@@ -233,13 +233,13 @@ Embedded version of chain filter search endpoint.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
* **`prefix`**
|
||||
- **`prefix`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/dashboard/:token/params/:param-key/values`
|
||||
|
||||
@@ -247,11 +247,11 @@ Embedded version of chain filter values endpoint.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`param-key`**
|
||||
- **`param-key`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/pivot/card/:token/query`
|
||||
|
||||
@@ -264,11 +264,11 @@ Fetch the results of running a Card using a JSON Web Token signed with the `embe
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/embed/pivot/dashboard/:token/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -277,15 +277,15 @@ Fetch the results of running a Card belonging to a Dashboard using a JSON Web To
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Remove the dimension associated to field at ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/field/:id`
|
||||
|
||||
@@ -22,9 +22,9 @@ Get `Field` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_editable_data_model`** value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/field/:id/related`
|
||||
|
||||
@@ -32,7 +32,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/field/:id/remapping/:remapped-id`
|
||||
|
||||
@@ -40,11 +40,11 @@ Fetch remapped Field values.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`remapped-id`** value must be an integer greater than zero.
|
||||
- **`remapped-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/field/:id/search/:search-id`
|
||||
|
||||
@@ -53,11 +53,11 @@ Search for values of a Field with `search-id` that start with `value`. See docst
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`search-id`** value must be an integer greater than zero.
|
||||
- **`search-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/field/:id/summary`
|
||||
|
||||
@@ -65,7 +65,7 @@ Get the count and distinct count of `Field` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/field/:id/values`
|
||||
|
||||
@@ -75,7 +75,7 @@ If a Field's value of `has_field_values` is `:list`, return a list of all the di
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/field/field%2C:field-name%2C:options/values`
|
||||
|
||||
@@ -84,7 +84,7 @@ Implementation of the field values endpoint for fields in the Saved Questions 'v
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`_`**
|
||||
- **`_`**
|
||||
|
||||
## `POST /api/field/:id/dimension`
|
||||
|
||||
@@ -92,13 +92,13 @@ Sets the dimension for the given field at ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dimension-type`** enum of internal, external
|
||||
- **`dimension-type`** enum of internal, external.
|
||||
|
||||
* **`dimension-name`** value must be a non-blank string.
|
||||
- **`dimension-name`** value must be a non-blank string.
|
||||
|
||||
* **`human_readable_field_id`** nullable value must be an integer greater than zero.
|
||||
- **`human_readable_field_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/field/:id/discard_values`
|
||||
|
||||
@@ -107,7 +107,7 @@ Discard the FieldValues belonging to this Field. Only applies to fields that hav
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/field/:id/rescan_values`
|
||||
|
||||
@@ -116,7 +116,7 @@ Manually trigger an update for the FieldValues for this Field. Only applies to F
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/field/:id/values`
|
||||
|
||||
@@ -125,9 +125,9 @@ Update the fields values and human-readable values for a `Field` whose semantic
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value-pairs`** sequence of vector with exactly 1 items of type: anything, or vector with exactly 2 items of type: anything, value must be a non-blank string.
|
||||
- **`value-pairs`** sequence of vector with exactly 1 items of type: anything, or vector with exactly 2 items of type: anything, value must be a non-blank string.
|
||||
|
||||
## `PUT /api/field/:id`
|
||||
|
||||
@@ -135,31 +135,31 @@ Update `Field` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`visibility_type`** nullable enum of retired, sensitive, normal, hidden, details-only
|
||||
- **`visibility_type`** nullable enum of retired, sensitive, normal, hidden, details-only.
|
||||
|
||||
* **`display_name`** nullable value must be a non-blank string.
|
||||
- **`display_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`points_of_interest`** nullable value must be a non-blank string.
|
||||
- **`points_of_interest`** nullable value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable value must be a non-blank string.
|
||||
- **`description`** nullable value must be a non-blank string.
|
||||
|
||||
* **`semantic_type`** nullable value must be a valid field semantic or relation type (keyword or string).
|
||||
- **`semantic_type`** nullable value must be a valid field semantic or relation type (keyword or string).
|
||||
|
||||
* **`coercion_strategy`** nullable value must be a valid coercion strategy (keyword or string).
|
||||
- **`coercion_strategy`** nullable value must be a valid coercion strategy (keyword or string).
|
||||
|
||||
* **`has_field_values`** nullable :metabase.lib.schema.metadata/column.has-field-values
|
||||
- **`has_field_values`** nullable :metabase.lib.schema.metadata/column.has-field-values.
|
||||
|
||||
* **`settings`** nullable Value must be a map.
|
||||
- **`settings`** nullable Value must be a map.
|
||||
|
||||
* **`caveats`** nullable value must be a non-blank string.
|
||||
- **`caveats`** nullable value must be a non-blank string.
|
||||
|
||||
* **`fk_target_field_id`** nullable value must be an integer greater than zero.
|
||||
- **`fk_target_field_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`nfc_path`** nullable sequence of value must be a non-blank string.
|
||||
- **`nfc_path`** nullable sequence of value must be a non-blank string.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`json_unfolding`** nullable boolean
|
||||
- **`json_unfolding`** nullable boolean.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@ Load a custom GeoJSON file based on a URL or file path provided as a query param
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`url`** value must be a non-blank string.
|
||||
- **`url`** value must be a non-blank string.
|
||||
|
||||
* **`respond`**
|
||||
- **`respond`**
|
||||
|
||||
* **`raise`**
|
||||
- **`raise`**
|
||||
|
||||
## `GET /api/geojson/:key`
|
||||
|
||||
@@ -28,11 +28,11 @@ Fetch a custom GeoJSON file as defined in the `custom-geojson` setting. (This ju
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`key`** value must be a non-blank string.
|
||||
- **`key`** value must be a non-blank string.
|
||||
|
||||
* **`respond`**
|
||||
- **`respond`**
|
||||
|
||||
* **`raise`**
|
||||
- **`raise`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,11 +16,11 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`google-auth-client-id`** nullable string
|
||||
- **`google-auth-client-id`** nullable string.
|
||||
|
||||
* **`google-auth-enabled`** nullable boolean
|
||||
- **`google-auth-enabled`** nullable boolean.
|
||||
|
||||
* **`google-auth-auto-create-accounts-domain`** nullable string
|
||||
- **`google-auth-auto-create-accounts-domain`** nullable string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`settings`** map
|
||||
- **`settings`** map.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Ask Metabot to generate a native question given a prompt about a given database.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database-id`** value must be an integer greater than zero.
|
||||
- **`database-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`question`** value must be a non-blank string.
|
||||
- **`question`** value must be a non-blank string.
|
||||
|
||||
## `POST /api/metabot/database/:database-id/query`
|
||||
|
||||
@@ -24,9 +24,9 @@ Ask Metabot to generate a SQL query given a prompt about a given database.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`database-id`** value must be an integer greater than zero.
|
||||
- **`database-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`question`** value must be a non-blank string.
|
||||
- **`question`** value must be a non-blank string.
|
||||
|
||||
## `POST /api/metabot/feedback`
|
||||
|
||||
@@ -34,7 +34,7 @@ Record feedback on metabot results.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`feedback`**
|
||||
- **`feedback`**
|
||||
|
||||
## `POST /api/metabot/model/:model-id`
|
||||
|
||||
@@ -42,9 +42,9 @@ Ask Metabot to generate a SQL query given a prompt about a given model.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model-id`** value must be an integer greater than zero.
|
||||
- **`model-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`question`** value must be a non-blank string.
|
||||
- **`question`** value must be a non-blank string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Archive a Metric. (DEPRECATED -- Just pass updated value of `:archived` to the `
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_message`** value must be a non-blank string.
|
||||
- **`revision_message`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/metric/`
|
||||
|
||||
@@ -28,7 +28,7 @@ Fetch `Metric` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/metric/:id/related`
|
||||
|
||||
@@ -36,7 +36,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/metric/:id/revisions`
|
||||
|
||||
@@ -44,7 +44,7 @@ Fetch `Revisions` for `Metric` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/metric/`
|
||||
|
||||
@@ -52,13 +52,13 @@ Create a new `Metric`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`table_id`** value must be an integer greater than zero.
|
||||
- **`table_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`definition`** map
|
||||
- **`definition`** map.
|
||||
|
||||
## `POST /api/metric/:id/revert`
|
||||
|
||||
@@ -66,9 +66,9 @@ Revert a `Metric` to a prior `Revision`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_id`** value must be an integer greater than zero.
|
||||
- **`revision_id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/metric/:id`
|
||||
|
||||
@@ -76,25 +76,25 @@ Update a `Metric` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`definition`** nullable map
|
||||
- **`definition`** nullable map.
|
||||
|
||||
* **`revision_message`** value must be a non-blank string.
|
||||
- **`revision_message`** value must be a non-blank string.
|
||||
|
||||
* **`show_in_getting_started`** nullable boolean
|
||||
- **`show_in_getting_started`** nullable boolean.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`how_is_this_calculated`** nullable string
|
||||
- **`how_is_this_calculated`** nullable string.
|
||||
|
||||
## `PUT /api/metric/:id/important_fields`
|
||||
|
||||
@@ -105,9 +105,9 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`important_field_ids`** sequence of value must be an integer greater than zero.
|
||||
- **`important_field_ids`** sequence of value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -12,31 +12,31 @@ API endpoints for Model index.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/model-index/`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model_id`** value must be an integer greater than zero.
|
||||
- **`model_id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/model-index/:id`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/model-index/`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`model_id`** value must be an integer greater than zero.
|
||||
- **`model_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`pk_ref`** anything
|
||||
- **`pk_ref`** anything.
|
||||
|
||||
* **`value_ref`** anything
|
||||
- **`value_ref`** anything.
|
||||
|
||||
* **`_model-index`**
|
||||
- **`_model-index`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Fetch all snippets.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/native-query-snippet/:id`
|
||||
|
||||
@@ -22,7 +22,7 @@ Fetch native query snippet with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/native-query-snippet/`
|
||||
|
||||
@@ -30,13 +30,13 @@ Create a new `NativeQuerySnippet`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`content`** string
|
||||
- **`content`** string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`name`** snippet names cannot include } or start with spaces
|
||||
- **`name`** snippet names cannot include } or start with spaces.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/native-query-snippet/:id`
|
||||
|
||||
@@ -44,17 +44,17 @@ Update an existing `NativeQuerySnippet`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`content`** nullable string
|
||||
- **`content`** nullable string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`name`** nullable snippet names cannot include } or start with spaces
|
||||
- **`name`** nullable snippet names cannot include } or start with spaces.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -19,15 +19,15 @@ Notification about a potential schema change to one of our `Databases`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`table_id`** nullable value must be an integer greater than zero.
|
||||
- **`table_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`table_name`** nullable value must be a non-blank string.
|
||||
- **`table_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`scan`** nullable enum of full, schema
|
||||
- **`scan`** nullable enum of full, schema.
|
||||
|
||||
* **`synchronous?`**
|
||||
- **`synchronous?`**
|
||||
|
||||
## `POST /api/notify/db/:id/new-table`
|
||||
|
||||
@@ -36,11 +36,11 @@ Sync a new table without running a full database sync. Requires `schema_name` an
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`schema_name`** value must be a non-blank string.
|
||||
- **`schema_name`** value must be a non-blank string.
|
||||
|
||||
* **`table_name`** value must be a non-blank string.
|
||||
- **`table_name`** value must be a non-blank string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Delete a specific `PermissionsGroup`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group-id`** value must be an integer greater than zero.
|
||||
- **`group-id`** value must be an integer greater than zero.
|
||||
|
||||
## `DELETE /api/permissions/membership/:id`
|
||||
|
||||
@@ -22,7 +22,7 @@ Remove a User from a PermissionsGroup (delete their membership).
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/permissions/execution/graph`
|
||||
|
||||
@@ -50,7 +50,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`db-id`** value must be an integer greater than zero.
|
||||
- **`db-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/permissions/graph/group/:group-id`
|
||||
|
||||
@@ -60,7 +60,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group-id`** value must be an integer greater than zero.
|
||||
- **`group-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/permissions/group`
|
||||
|
||||
@@ -75,7 +75,7 @@ Fetch the details for a certain permissions group.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/permissions/membership`
|
||||
|
||||
@@ -94,7 +94,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
## `POST /api/permissions/membership`
|
||||
|
||||
@@ -102,11 +102,11 @@ Add a `User` to a `PermissionsGroup`. Returns updated list of members belonging
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group_id`** value must be an integer greater than zero.
|
||||
- **`group_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`user_id`** value must be an integer greater than zero.
|
||||
- **`user_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`is_group_manager`** nullable boolean
|
||||
- **`is_group_manager`** nullable boolean.
|
||||
|
||||
## `PUT /api/permissions/execution/graph`
|
||||
|
||||
@@ -121,7 +121,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`body`** map
|
||||
- **`body`** map.
|
||||
|
||||
## `PUT /api/permissions/graph`
|
||||
|
||||
@@ -145,9 +145,9 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`skip-graph`** nullable boolean
|
||||
- **`skip-graph`** nullable boolean.
|
||||
|
||||
* **`body`** map
|
||||
- **`body`** map.
|
||||
|
||||
## `PUT /api/permissions/group/:group-id`
|
||||
|
||||
@@ -155,9 +155,9 @@ Update the name of a `PermissionsGroup`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group-id`** value must be an integer greater than zero.
|
||||
- **`group-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
## `PUT /api/permissions/membership/:group-id/clear`
|
||||
|
||||
@@ -165,7 +165,7 @@ Remove all members from a `PermissionsGroup`. Returns a 400 (Bad Request) if the
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`group-id`** value must be an integer greater than zero.
|
||||
- **`group-id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/permissions/membership/:id`
|
||||
|
||||
@@ -173,9 +173,9 @@ Update a Permission Group membership. Returns the updated record.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`is_group_manager`** boolean
|
||||
- **`is_group_manager`** boolean.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Fetch a particular [[PersistedInfo]] by id.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`persisted-info-id`** nullable value must be an integer greater than zero.
|
||||
- **`persisted-info-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/persist/card/:card-id`
|
||||
|
||||
@@ -26,7 +26,7 @@ Fetch a particular [[PersistedInfo]] by card-id.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`card-id`** nullable value must be an integer greater than zero.
|
||||
- **`card-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/persist/disable`
|
||||
|
||||
@@ -44,9 +44,9 @@ Set the cron schedule to refresh persisted models.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`cron`** Value must be a string representing a cron schedule of format <seconds> <minutes> <hours> <day of month> <month> <day of week> <year>
|
||||
- **`cron`** Value must be a string representing a cron schedule of format <seconds> <minutes> <hours> <day of month> <month> <day of week> <year>.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ Fetch a Card you're considering embedding by passing a JWT `token`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/preview-embed/card/:token/query`
|
||||
|
||||
@@ -38,11 +38,11 @@ Fetch the query results for a Card you're considering embedding by passing a JWT
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/preview-embed/dashboard/:token`
|
||||
|
||||
@@ -50,7 +50,7 @@ Fetch a Dashboard you're considering embedding by passing a JWT `token`. .
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/preview-embed/dashboard/:token/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -58,15 +58,15 @@ Fetch the results of running a Card belonging to a Dashboard you're considering
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/preview-embed/pivot/card/:token/query`
|
||||
|
||||
@@ -74,11 +74,11 @@ Fetch the query results for a Card you're considering embedding by passing a JWT
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
## `GET /api/preview-embed/pivot/dashboard/:token/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -86,15 +86,15 @@ Fetch the results of running a Card belonging to a Dashboard you're considering
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`&`**
|
||||
- **`&`**
|
||||
|
||||
* **`query-params`**
|
||||
- **`query-params`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Fetch a publicly-accessible Action. Does not require auth credentials. Public sh
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
## `GET /api/public/card/:uuid`
|
||||
|
||||
@@ -23,7 +23,7 @@ Fetch a publicly-accessible Card an return query results as well as `:card` info
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
## `GET /api/public/card/:uuid/field/:field-id/remapping/:remapped-id`
|
||||
|
||||
@@ -32,13 +32,13 @@ Fetch remapped Field values. This is the same as `GET /api/field/:id/remapping/:
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`remapped-id`** value must be an integer greater than zero.
|
||||
- **`remapped-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/public/card/:uuid/field/:field-id/search/:search-field-id`
|
||||
|
||||
@@ -46,15 +46,15 @@ Search for values of a Field that is referenced by a public Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`search-field-id`** value must be an integer greater than zero.
|
||||
- **`search-field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
* **`limit`** nullable value must be an integer greater than zero.
|
||||
- **`limit`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/public/card/:uuid/field/:field-id/values`
|
||||
|
||||
@@ -62,9 +62,9 @@ Fetch FieldValues for a Field that is referenced by a public Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/public/card/:uuid/params/:param-key/search/:query`
|
||||
|
||||
@@ -72,11 +72,11 @@ Fetch values for a parameter on a public card containing `query`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/public/card/:uuid/params/:param-key/values`
|
||||
|
||||
@@ -84,9 +84,9 @@ Fetch values for a parameter on a public card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/public/card/:uuid/query`
|
||||
|
||||
@@ -95,9 +95,9 @@ Fetch a publicly-accessible Card an return query results as well as `:card` info
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `GET /api/public/card/:uuid/query/:export-format`
|
||||
|
||||
@@ -106,11 +106,11 @@ Fetch a publicly-accessible Card and return query results in the specified forma
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`export-format`** enum of csv, api, xlsx, json
|
||||
- **`export-format`** enum of csv, api, xlsx, json.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid`
|
||||
|
||||
@@ -118,7 +118,7 @@ Fetch a publicly-accessible Dashboard. Does not require auth credentials. Public
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -127,13 +127,13 @@ Fetch the results for a Card in a publicly-accessible Dashboard. Does not requir
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/dashcard/:dashcard-id/execute`
|
||||
|
||||
@@ -141,11 +141,11 @@ Fetches the values for filling in execution parameters. Pass PK parameters and v
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** value must be a valid JSON string.
|
||||
- **`parameters`** value must be a valid JSON string.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/field/:field-id/remapping/:remapped-id`
|
||||
|
||||
@@ -154,13 +154,13 @@ Fetch remapped Field values. This is the same as `GET /api/field/:id/remapping/:
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`remapped-id`** value must be an integer greater than zero.
|
||||
- **`remapped-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/field/:field-id/search/:search-field-id`
|
||||
|
||||
@@ -168,15 +168,15 @@ Search for values of a Field that is referenced by a Card in a public Dashboard.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`search-field-id`** value must be an integer greater than zero.
|
||||
- **`search-field-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`value`** value must be a non-blank string.
|
||||
- **`value`** value must be a non-blank string.
|
||||
|
||||
* **`limit`** nullable value must be an integer greater than zero.
|
||||
- **`limit`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/field/:field-id/values`
|
||||
|
||||
@@ -184,9 +184,9 @@ Fetch FieldValues for a Field that is referenced by a Card in a public Dashboard
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`field-id`** value must be an integer greater than zero.
|
||||
- **`field-id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/params/:param-key/search/:query`
|
||||
|
||||
@@ -194,13 +194,13 @@ Fetch filter values for dashboard parameter `param-key`, containing specified `q
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
* **`query`** value must be a non-blank string.
|
||||
- **`query`** value must be a non-blank string.
|
||||
|
||||
* **`constraint-param-key->value`**
|
||||
- **`constraint-param-key->value`**
|
||||
|
||||
## `GET /api/public/dashboard/:uuid/params/:param-key/values`
|
||||
|
||||
@@ -208,11 +208,11 @@ Fetch filter values for dashboard parameter `param-key`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`param-key`** value must be a non-blank string.
|
||||
- **`param-key`** value must be a non-blank string.
|
||||
|
||||
* **`constraint-param-key->value`**
|
||||
- **`constraint-param-key->value`**
|
||||
|
||||
## `GET /api/public/oembed`
|
||||
|
||||
@@ -220,13 +220,13 @@ oEmbed endpoint used to retreive embed code and metadata for a (public) Metabase
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`url`** value must be a non-blank string.
|
||||
- **`url`** value must be a non-blank string.
|
||||
|
||||
* **`format`** nullable enum of json
|
||||
- **`format`** nullable enum of json.
|
||||
|
||||
* **`maxheight`** nullable value must be a valid integer.
|
||||
- **`maxheight`** nullable value must be a valid integer.
|
||||
|
||||
* **`maxwidth`** nullable value must be a valid integer.
|
||||
- **`maxwidth`** nullable value must be a valid integer.
|
||||
|
||||
## `GET /api/public/pivot/card/:uuid/query`
|
||||
|
||||
@@ -235,9 +235,9 @@ Fetch a publicly-accessible Card an return query results as well as `:card` info
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `GET /api/public/pivot/dashboard/:uuid/dashcard/:dashcard-id/card/:card-id`
|
||||
|
||||
@@ -246,13 +246,13 @@ Fetch the results for a Card in a publicly-accessible Dashboard. Does not requir
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`card-id`** value must be an integer greater than zero.
|
||||
- **`card-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable value must be a valid JSON string.
|
||||
- **`parameters`** nullable value must be a valid JSON string.
|
||||
|
||||
## `POST /api/public/action/:uuid/execute`
|
||||
|
||||
@@ -262,11 +262,11 @@ Execute the Action.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`parameters`** nullable map from <keyword> to <anything>
|
||||
- **`parameters`** nullable map from <keyword> to <anything>.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
## `POST /api/public/dashboard/:uuid/dashcard/:dashcard-id/execute`
|
||||
|
||||
@@ -276,13 +276,13 @@ Execute the associated Action in the context of a `Dashboard` and `DashboardCard
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`uuid`** value must be a valid UUID.
|
||||
- **`uuid`** value must be a valid UUID.
|
||||
|
||||
* **`dashcard-id`** value must be an integer greater than zero.
|
||||
- **`dashcard-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable map from <keyword> to <anything>
|
||||
- **`parameters`** nullable map from <keyword> to <anything>.
|
||||
|
||||
* **`_body`**
|
||||
- **`_body`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ For users to unsubscribe themselves from a pulse subscription.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/pulse/`
|
||||
|
||||
@@ -31,11 +31,11 @@ Fetch all dashboard subscriptions. By default, returns only subscriptions for wh
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
- **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`creator_or_recipient`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`creator_or_recipient`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/pulse/:id`
|
||||
|
||||
@@ -44,7 +44,7 @@ Fetch `Pulse` with ID. If the user is a recipient of the Pulse but does not have
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/pulse/form_input`
|
||||
|
||||
@@ -56,7 +56,7 @@ Get HTML rendering of a Card with `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/pulse/preview_card_info/:id`
|
||||
|
||||
@@ -64,7 +64,7 @@ Get JSON object containing HTML rendering of a Card with `id` and other informat
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/pulse/preview_card_png/:id`
|
||||
|
||||
@@ -72,7 +72,7 @@ Get PNG rendering of a Card with `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/pulse/preview_dashboard/:id`
|
||||
|
||||
@@ -84,7 +84,7 @@ Get HTML rendering of a Dashboard with `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/pulse/`
|
||||
|
||||
@@ -92,21 +92,21 @@ Create a new `Pulse`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`cards`** one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
- **`cards`** one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`., or value must be a map with the keys `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
|
||||
* **`channels`** one or more map
|
||||
- **`channels`** one or more map.
|
||||
|
||||
* **`skip_if_empty`** nullable boolean
|
||||
- **`skip_if_empty`** nullable boolean.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
- **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`parameters`** nullable sequence of map
|
||||
- **`parameters`** nullable sequence of map.
|
||||
|
||||
## `POST /api/pulse/test`
|
||||
|
||||
@@ -114,19 +114,19 @@ Test send an unsaved pulse.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`cards`** one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
- **`cards`** one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`., or value must be a map with the keys `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
|
||||
* **`channels`** one or more map
|
||||
- **`channels`** one or more map.
|
||||
|
||||
* **`skip_if_empty`** nullable boolean
|
||||
- **`skip_if_empty`** nullable boolean.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`collection_position`** nullable value must be an integer greater than zero.
|
||||
- **`collection_position`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
- **`dashboard_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/pulse/:id`
|
||||
|
||||
@@ -134,23 +134,23 @@ Update a Pulse with `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`skip_if_empty`** nullable boolean
|
||||
- **`skip_if_empty`** nullable boolean.
|
||||
|
||||
* **`parameters`** nullable sequence of Value must be a map.
|
||||
- **`parameters`** nullable sequence of Value must be a map.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`channels`** nullable one or more map
|
||||
- **`channels`** nullable one or more map.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`cards`** nullable one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
- **`cards`** nullable one or more value must be a map with the following keys `(collection_id, description, display, id, include_csv, include_xls, name, dashboard_id, parameter_mappings)`, or value must be a map with the keys `id`, `include_csv`, `include_xls`, and `dashboard_card_id`., or value must be a map with the keys `include_csv`, `include_xls`, and `dashboard_card_id`.
|
||||
|
||||
* **`pulse-updates`**
|
||||
- **`pulse-updates`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Get revisions of an object.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** enum of card, dashboard
|
||||
- **`entity`** enum of card, dashboard.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/revision/revert`
|
||||
|
||||
@@ -24,11 +24,11 @@ Revert an object to a prior revision.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`entity`** enum of card, dashboard
|
||||
- **`entity`** enum of card, dashboard.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_id`** value must be an integer greater than zero.
|
||||
- **`revision_id`** value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -33,29 +33,29 @@ Search for items in Metabase.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`filter_items_in_personal_collection`** nullable enum of only, exclude
|
||||
- **`filter_items_in_personal_collection`** nullable enum of only, exclude.
|
||||
|
||||
* **`table_db_id`** nullable value must be an integer greater than zero.
|
||||
- **`table_db_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`created_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
- **`created_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`verified`** nullable true
|
||||
- **`verified`** nullable true.
|
||||
|
||||
* **`created_at`** nullable value must be a non-blank string.
|
||||
- **`created_at`** nullable value must be a non-blank string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`q`** nullable value must be a non-blank string.
|
||||
- **`q`** nullable value must be a non-blank string.
|
||||
|
||||
* **`search_native_query`** nullable true
|
||||
- **`search_native_query`** nullable true.
|
||||
|
||||
* **`models`** nullable enum of dashboard, table, dataset, segment, collection, database, action, indexed-entity, metric, card, or sequence of enum of dashboard, table, dataset, segment, collection, database, action, indexed-entity, metric, card
|
||||
- **`models`** nullable enum of dashboard, table, dataset, segment, collection, database, action, indexed-entity, metric, card, or sequence of enum of dashboard, table, dataset, segment, collection, database, action, indexed-entity, metric, card.
|
||||
|
||||
* **`last_edited_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
- **`last_edited_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`last_edited_at`** nullable value must be a non-blank string.
|
||||
- **`last_edited_at`** nullable value must be a non-blank string.
|
||||
|
||||
* **`context`** nullable enum of search-bar, search-app
|
||||
- **`context`** nullable enum of search-bar, search-app.
|
||||
|
||||
## `GET /api/search/models`
|
||||
|
||||
@@ -63,25 +63,25 @@ Get the set of models that a search query will return.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`filter_items_in_personal_collection`**
|
||||
- **`filter_items_in_personal_collection`**
|
||||
|
||||
* **`created_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
- **`created_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`verified`** nullable true
|
||||
- **`verified`** nullable true.
|
||||
|
||||
* **`created_at`** nullable value must be a non-blank string.
|
||||
- **`created_at`** nullable value must be a non-blank string.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`q`**
|
||||
- **`q`**
|
||||
|
||||
* **`search_native_query`** nullable true
|
||||
- **`search_native_query`** nullable true.
|
||||
|
||||
* **`last_edited_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
- **`last_edited_by`** nullable value must be an integer greater than zero., or sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`last_edited_at`** nullable value must be an integer greater than zero.
|
||||
- **`last_edited_at`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`table-db-id`** nullable value must be an integer greater than zero.
|
||||
- **`table-db-id`** nullable value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Archive a Segment. (DEPRECATED -- Just pass updated value of `:archived` to the
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_message`** value must be a non-blank string.
|
||||
- **`revision_message`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/segment/`
|
||||
|
||||
@@ -28,7 +28,7 @@ Fetch `Segment` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/segment/:id/related`
|
||||
|
||||
@@ -36,7 +36,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/segment/:id/revisions`
|
||||
|
||||
@@ -44,7 +44,7 @@ Fetch `Revisions` for `Segment` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/segment/`
|
||||
|
||||
@@ -52,13 +52,13 @@ Create a new `Segment`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`table_id`** value must be an integer greater than zero.
|
||||
- **`table_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`definition`** Value must be a map.
|
||||
- **`definition`** Value must be a map.
|
||||
|
||||
## `POST /api/segment/:id/revert`
|
||||
|
||||
@@ -66,9 +66,9 @@ Revert a `Segement` to a prior `Revision`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`revision_id`** value must be an integer greater than zero.
|
||||
- **`revision_id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/segment/:id`
|
||||
|
||||
@@ -76,23 +76,23 @@ Update a `Segment` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`definition`** nullable map
|
||||
- **`definition`** nullable map.
|
||||
|
||||
* **`revision_message`** value must be a non-blank string.
|
||||
- **`revision_message`** value must be a non-blank string.
|
||||
|
||||
* **`show_in_getting_started`** nullable boolean
|
||||
- **`show_in_getting_started`** nullable boolean.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,15 +14,15 @@ Logout.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`metabase-session-id`**
|
||||
- **`metabase-session-id`**
|
||||
|
||||
## `GET /api/session/password_reset_token_valid`
|
||||
|
||||
Check is a password reset token is valid and isn't expired.
|
||||
Check if a password reset token is valid and isn't expired.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
## `GET /api/session/properties`
|
||||
|
||||
@@ -35,11 +35,11 @@ Login.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`username`** value must be a non-blank string.
|
||||
- **`username`** value must be a non-blank string.
|
||||
|
||||
* **`password`** value must be a non-blank string.
|
||||
- **`password`** value must be a non-blank string.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `POST /api/session/forgot_password`
|
||||
|
||||
@@ -47,9 +47,9 @@ Send a reset email when user has forgotten their password.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`email`** value must be a valid email address.
|
||||
- **`email`** value must be a valid email address.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `POST /api/session/google_auth`
|
||||
|
||||
@@ -57,9 +57,9 @@ Login with Google Auth.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `POST /api/session/pulse/unsubscribe`
|
||||
|
||||
@@ -67,13 +67,13 @@ Allow non-users to unsubscribe from pulses/subscriptions, with the hash given th
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`email`** string
|
||||
- **`email`** string.
|
||||
|
||||
* **`hash`** string
|
||||
- **`hash`** string.
|
||||
|
||||
* **`pulse-id`** value must be an integer greater than zero.
|
||||
- **`pulse-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `POST /api/session/pulse/unsubscribe/undo`
|
||||
|
||||
@@ -81,13 +81,13 @@ Allow non-users to undo an unsubscribe from pulses/subscriptions, with the hash
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`email`** string
|
||||
- **`email`** string.
|
||||
|
||||
* **`hash`** string
|
||||
- **`hash`** string.
|
||||
|
||||
* **`pulse-id`** value must be an integer greater than zero.
|
||||
- **`pulse-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `POST /api/session/reset_password`
|
||||
|
||||
@@ -95,11 +95,11 @@ Reset password with a reset token.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`** value must be a non-blank string.
|
||||
- **`token`** value must be a non-blank string.
|
||||
|
||||
* **`password`** password is too common.
|
||||
- **`password`** password is too common.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Fetch a single `Setting`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`key`** keyword
|
||||
- **`key`** keyword.
|
||||
|
||||
## `PUT /api/setting/`
|
||||
|
||||
@@ -27,7 +27,7 @@ Update multiple `Settings` values. If called by a non-superuser, only user-local
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`settings`** map from <keyword> to <anything>
|
||||
- **`settings`** map from <keyword> to <anything>.
|
||||
|
||||
## `PUT /api/setting/:key`
|
||||
|
||||
@@ -36,9 +36,9 @@ Create/update a `Setting`. If called by a non-admin, only user-local settings ca
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`key`** keyword
|
||||
- **`key`** keyword.
|
||||
|
||||
* **`value`**
|
||||
- **`value`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Returns object containing default user details for initial setup, if configured,
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`token`**
|
||||
- **`token`**
|
||||
|
||||
## `POST /api/setup/`
|
||||
|
||||
@@ -29,41 +29,41 @@ Special endpoint for creating the first user during setup. This endpoint both cr
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`engine`**
|
||||
- **`engine`**
|
||||
|
||||
* **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap
|
||||
- **`schedules`** nullable :metabase.sync.schedules/ExpandedSchedulesMap.
|
||||
|
||||
* **`allow_tracking`** nullable boolean, or value must be a valid boolean string ('true' or 'false').
|
||||
- **`allow_tracking`** nullable boolean, or value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`invited_last_name`** nullable value must be a non-blank string.
|
||||
- **`invited_last_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`site_locale`** nullable String must be a valid two-letter ISO language or language-country code e.g. en or en_US.
|
||||
- **`site_locale`** nullable String must be a valid two-letter ISO language or language-country code e.g. en or en_US.
|
||||
|
||||
* **`email`** value must be a valid email address.
|
||||
- **`email`** value must be a valid email address.
|
||||
|
||||
* **`first_name`** nullable value must be a non-blank string.
|
||||
- **`first_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
* **`auto_run_queries`** nullable boolean
|
||||
- **`auto_run_queries`** nullable boolean.
|
||||
|
||||
* **`password`** password is too common.
|
||||
- **`password`** password is too common.
|
||||
|
||||
* **`name`**
|
||||
- **`name`**
|
||||
|
||||
* **`invited_email`** nullable value must be a valid email address.
|
||||
- **`invited_email`** nullable value must be a valid email address.
|
||||
|
||||
* **`invited_first_name`** nullable value must be a non-blank string.
|
||||
- **`invited_first_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`site_name`** value must be a non-blank string.
|
||||
- **`site_name`** value must be a non-blank string.
|
||||
|
||||
* **`token`** Token does not match the setup token.
|
||||
- **`token`** Token does not match the setup token.
|
||||
|
||||
* **`details`**
|
||||
- **`details`**
|
||||
|
||||
* **`database`**
|
||||
- **`database`**
|
||||
|
||||
* **`last_name`** nullable value must be a non-blank string.
|
||||
- **`last_name`** nullable value must be a non-blank string.
|
||||
|
||||
## `POST /api/setup/validate`
|
||||
|
||||
@@ -71,11 +71,11 @@ Validate that we can connect to a database given a set of details.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`engine`** value must be a valid database engine.
|
||||
- **`engine`** value must be a valid database engine.
|
||||
|
||||
* **`details`**
|
||||
- **`details`**
|
||||
|
||||
* **`token`** Token does not match the setup token.
|
||||
- **`token`** Token does not match the setup token.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ Update Slack related settings. You must be a superuser to do this. Also updates
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`slack-app-token`** nullable value must be a non-blank string.
|
||||
- **`slack-app-token`** nullable value must be a non-blank string.
|
||||
|
||||
* **`slack-files-channel`** nullable value must be a non-blank string.
|
||||
- **`slack-files-channel`** nullable value must be a non-blank string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`settings`** map
|
||||
- **`settings`** map.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ Get `Table` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_editable_data_model`** nullable boolean
|
||||
- **`include_editable_data_model`** nullable boolean.
|
||||
|
||||
## `GET /api/table/:id/fks`
|
||||
|
||||
@@ -28,7 +28,7 @@ Get all foreign keys whose destination is a `Field` that belongs to this `Table`
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/table/:id/query_metadata`
|
||||
|
||||
@@ -45,13 +45,13 @@ Get metadata about a `Table` useful for running queries.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include_sensitive_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_sensitive_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_hidden_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_hidden_fields`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_editable_data_model`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/table/:id/related`
|
||||
|
||||
@@ -59,7 +59,7 @@ Return related entities.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/table/card__:id/fks`
|
||||
|
||||
@@ -68,7 +68,7 @@ Return FK info for the 'virtual' table for a Card. This is always empty, so this
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/table/card__:id/query_metadata`
|
||||
|
||||
@@ -76,7 +76,7 @@ Return metadata for the 'virtual' table for a Card.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/table/:id/append-csv`
|
||||
|
||||
@@ -84,9 +84,9 @@ Inserts the rows of an uploaded CSV file into the table identified by `:id`. The
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`raw-params`**
|
||||
- **`raw-params`**
|
||||
|
||||
## `POST /api/table/:id/discard_values`
|
||||
|
||||
@@ -95,7 +95,7 @@ Discard the FieldValues belonging to the Fields in this Table. Only applies to f
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/table/:id/rescan_values`
|
||||
|
||||
@@ -104,7 +104,7 @@ Manually trigger an update for the FieldValues for the Fields belonging to this
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/table/`
|
||||
|
||||
@@ -112,21 +112,21 @@ Update all `Table` in `ids`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`ids`** sequence of value must be an integer greater than zero.
|
||||
- **`ids`** sequence of value must be an integer greater than zero.
|
||||
|
||||
* **`display_name`** nullable value must be a non-blank string.
|
||||
- **`display_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`entity_type`** nullable value must be a valid entity type (keyword or string).
|
||||
- **`entity_type`** nullable value must be a valid entity type (keyword or string).
|
||||
|
||||
* **`visibility_type`** nullable enum of technical, hidden, cruft
|
||||
- **`visibility_type`** nullable enum of technical, hidden, cruft.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`show_in_getting_started`** nullable boolean
|
||||
- **`show_in_getting_started`** nullable boolean.
|
||||
|
||||
## `PUT /api/table/:id`
|
||||
|
||||
@@ -134,23 +134,23 @@ Update `Table` with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`visibility_type`** nullable enum of technical, hidden, cruft
|
||||
- **`visibility_type`** nullable enum of technical, hidden, cruft.
|
||||
|
||||
* **`field_order`** nullable enum of alphabetical, custom, database, smart
|
||||
- **`field_order`** nullable enum of alphabetical, custom, database, smart.
|
||||
|
||||
* **`display_name`** nullable value must be a non-blank string.
|
||||
- **`display_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`points_of_interest`** nullable string
|
||||
- **`points_of_interest`** nullable string.
|
||||
|
||||
* **`entity_type`** nullable value must be a valid entity type (keyword or string).
|
||||
- **`entity_type`** nullable value must be a valid entity type (keyword or string).
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`show_in_getting_started`** nullable boolean
|
||||
- **`show_in_getting_started`** nullable boolean.
|
||||
|
||||
* **`caveats`** nullable string
|
||||
- **`caveats`** nullable string.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/table/:id/fields/order`
|
||||
|
||||
@@ -158,9 +158,9 @@ Reorder fields.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`field_order`** sequence of value must be an integer greater than zero.
|
||||
- **`field_order`** sequence of value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Get `TaskHistory` entry with ID.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/task/info`
|
||||
|
||||
|
||||
@@ -17,17 +17,17 @@ This endpoints provides an image with the appropriate pins rendered given a MBQL
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`zoom`** value must be an integer.
|
||||
- **`zoom`** value must be an integer.
|
||||
|
||||
* **`x`** value must be an integer.
|
||||
- **`x`** value must be an integer.
|
||||
|
||||
* **`y`** value must be an integer.
|
||||
- **`y`** value must be an integer.
|
||||
|
||||
* **`lat-field`** string
|
||||
- **`lat-field`** string.
|
||||
|
||||
* **`lon-field`** string
|
||||
- **`lon-field`** string.
|
||||
|
||||
* **`query`** value must be a valid JSON string.
|
||||
- **`query`** value must be a valid JSON string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Delete a [[TimelineEvent]].
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/timeline-event/:id`
|
||||
|
||||
@@ -22,7 +22,7 @@ Fetch the [[TimelineEvent]] with `id`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `POST /api/timeline-event/`
|
||||
|
||||
@@ -30,25 +30,25 @@ Create a new [[TimelineEvent]].
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`timestamp`** value must be a valid date string
|
||||
- **`timestamp`** value must be a valid date string.
|
||||
|
||||
* **`question_id`** nullable value must be an integer greater than zero.
|
||||
- **`question_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`timezone`** string
|
||||
- **`timezone`** string.
|
||||
|
||||
* **`time_matters`** nullable boolean
|
||||
- **`time_matters`** nullable boolean.
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`timeline_id`** value must be an integer greater than zero.
|
||||
- **`timeline_id`** value must be an integer greater than zero.
|
||||
|
||||
* **`source`** nullable enum of collections, question
|
||||
- **`source`** nullable enum of collections, question.
|
||||
|
||||
* **`icon`** nullable enum of star, cake, mail, warning, bell, cloud
|
||||
- **`icon`** nullable enum of star, cake, mail, warning, bell, cloud.
|
||||
|
||||
## `PUT /api/timeline-event/:id`
|
||||
|
||||
@@ -56,25 +56,25 @@ Update a [[TimelineEvent]].
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`timestamp`** nullable value must be a valid date string
|
||||
- **`timestamp`** nullable value must be a valid date string.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`timezone`** nullable string
|
||||
- **`timezone`** nullable string.
|
||||
|
||||
* **`time_matters`** nullable boolean
|
||||
- **`time_matters`** nullable boolean.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`timeline_id`** nullable value must be an integer greater than zero.
|
||||
- **`timeline_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`icon`** nullable enum of star, cake, mail, warning, bell, cloud
|
||||
- **`icon`** nullable enum of star, cake, mail, warning, bell, cloud.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`timeline-event-updates`**
|
||||
- **`timeline-event-updates`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Delete a [[Timeline]]. Will cascade delete its events as well.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/timeline/`
|
||||
|
||||
@@ -22,9 +22,9 @@ Fetch a list of [[Timelines]]. Can include `archived=true` to return archived ti
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`include`** nullable enum of events
|
||||
- **`include`** nullable enum of events.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/timeline/:id`
|
||||
|
||||
@@ -33,15 +33,15 @@ Fetch the [[Timeline]] with `id`. Include `include=events` to unarchived events
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`include`** nullable enum of events
|
||||
- **`include`** nullable enum of events.
|
||||
|
||||
* **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`archived`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
* **`start`** nullable value must be a valid date string
|
||||
- **`start`** nullable value must be a valid date string.
|
||||
|
||||
* **`end`** nullable value must be a valid date string
|
||||
- **`end`** nullable value must be a valid date string.
|
||||
|
||||
## `POST /api/timeline/`
|
||||
|
||||
@@ -49,17 +49,17 @@ Create a new [[Timeline]].
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`name`** value must be a non-blank string.
|
||||
- **`name`** value must be a non-blank string.
|
||||
|
||||
* **`default`** nullable boolean
|
||||
- **`default`** nullable boolean.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`icon`** nullable enum of star, cake, mail, warning, bell, cloud
|
||||
- **`icon`** nullable enum of star, cake, mail, warning, bell, cloud.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
## `PUT /api/timeline/:id`
|
||||
|
||||
@@ -68,21 +68,21 @@ Update the [[Timeline]] with `id`. Returns the timeline without events. Archivin
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`name`** nullable value must be a non-blank string.
|
||||
- **`name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`default`** nullable boolean
|
||||
- **`default`** nullable boolean.
|
||||
|
||||
* **`description`** nullable string
|
||||
- **`description`** nullable string.
|
||||
|
||||
* **`icon`** nullable enum of star, cake, mail, warning, bell, cloud
|
||||
- **`icon`** nullable enum of star, cake, mail, warning, bell, cloud.
|
||||
|
||||
* **`collection_id`** nullable value must be an integer greater than zero.
|
||||
- **`collection_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`archived`** nullable boolean
|
||||
- **`archived`** nullable boolean.
|
||||
|
||||
* **`timeline-updates`**
|
||||
- **`timeline-updates`**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,11 +14,11 @@ Look up a database schema transform.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`db-id`** value must be an integer greater than zero.
|
||||
- **`db-id`** value must be an integer greater than zero.
|
||||
|
||||
* **`schema`** value must be a non-blank string.
|
||||
- **`schema`** value must be a non-blank string.
|
||||
|
||||
* **`transform-name`** value must be a non-blank string.
|
||||
- **`transform-name`** value must be a non-blank string.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/user/`
|
||||
|
||||
@@ -38,13 +38,13 @@ Fetch a list of `Users` for admins or group managers.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`status`** nullable string
|
||||
- **`status`** nullable string.
|
||||
|
||||
* **`query`** nullable string
|
||||
- **`query`** nullable string.
|
||||
|
||||
* **`group_id`** nullable value must be an integer greater than zero.
|
||||
- **`group_id`** nullable value must be an integer greater than zero.
|
||||
|
||||
* **`include_deactivated`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
- **`include_deactivated`** nullable value must be a valid boolean string ('true' or 'false').
|
||||
|
||||
## `GET /api/user/:id`
|
||||
|
||||
@@ -52,7 +52,7 @@ Fetch a `User`. You must be fetching yourself *or* be a superuser *or* a Group M
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `GET /api/user/current`
|
||||
|
||||
@@ -74,15 +74,15 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`first_name`** nullable value must be a non-blank string.
|
||||
- **`first_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`last_name`** nullable value must be a non-blank string.
|
||||
- **`last_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`email`** value must be a valid email address.
|
||||
- **`email`** value must be a valid email address.
|
||||
|
||||
* **`user_group_memberships`** nullable sequence of map where {:id -> <value must be an integer greater than zero.>, :is_group_manager (optional) -> <boolean>}
|
||||
- **`user_group_memberships`** nullable sequence of map where {:id -> <value must be an integer greater than zero.>, :is_group_manager (optional) -> <boolean>}.
|
||||
|
||||
* **`login_attributes`** nullable login attribute keys must be a keyword or string
|
||||
- **`login_attributes`** nullable login attribute keys must be a keyword or string.
|
||||
|
||||
## `POST /api/user/:id/send_invite`
|
||||
|
||||
@@ -92,7 +92,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
## `PUT /api/user/:id`
|
||||
|
||||
@@ -102,23 +102,23 @@ Update an existing, active `User`.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`email`** nullable value must be a valid email address.
|
||||
- **`email`** nullable value must be a valid email address.
|
||||
|
||||
* **`first_name`** nullable value must be a non-blank string.
|
||||
- **`first_name`** nullable value must be a non-blank string.
|
||||
|
||||
* **`is_group_manager`** nullable boolean
|
||||
- **`is_group_manager`** nullable boolean.
|
||||
|
||||
* **`locale`** nullable String must be a valid two-letter ISO language or language-country code e.g. en or en_US.
|
||||
- **`locale`** nullable String must be a valid two-letter ISO language or language-country code e.g. en or en_US.
|
||||
|
||||
* **`user_group_memberships`** nullable sequence of map where {:id -> <value must be an integer greater than zero.>, :is_group_manager (optional) -> <boolean>}
|
||||
- **`user_group_memberships`** nullable sequence of map where {:id -> <value must be an integer greater than zero.>, :is_group_manager (optional) -> <boolean>}.
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`is_superuser`** nullable boolean
|
||||
- **`is_superuser`** nullable boolean.
|
||||
|
||||
* **`login_attributes`** nullable login attribute keys must be a keyword or string
|
||||
- **`login_attributes`** nullable login attribute keys must be a keyword or string.
|
||||
|
||||
* **`last_name`** nullable value must be a non-blank string.
|
||||
- **`last_name`** nullable value must be a non-blank string.
|
||||
|
||||
## `PUT /api/user/:id/modal/:modal`
|
||||
|
||||
@@ -126,9 +126,9 @@ Indicate that a user has been informed about the vast intricacies of 'the' Query
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`modal`**
|
||||
- **`modal`**
|
||||
|
||||
## `PUT /api/user/:id/password`
|
||||
|
||||
@@ -136,13 +136,13 @@ Update a user's password.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
* **`password`** password is too common.
|
||||
- **`password`** password is too common.
|
||||
|
||||
* **`old_password`**
|
||||
- **`old_password`**
|
||||
|
||||
* **`request`**
|
||||
- **`request`**
|
||||
|
||||
## `PUT /api/user/:id/reactivate`
|
||||
|
||||
@@ -152,7 +152,7 @@ You must be a superuser to do this.
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`id`** value must be an integer greater than zero.
|
||||
- **`id`** value must be an integer greater than zero.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ Endpoint that checks if the supplied password meets the currently configured pas
|
||||
|
||||
### PARAMS:
|
||||
|
||||
* **`password`** password is too common.
|
||||
- **`password`** password is too common.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -21,6 +21,19 @@ If you're looking for date, time, number, or currency formatting, see [Formattin
|
||||
|
||||
Click on the gear icon at the bottom of the navigation sidebar and select **Admin settings** > **Settings** > **Appearance**. Here’s what you can do:
|
||||
|
||||
## De-Metabasing your Metabase for embedding
|
||||
|
||||
When embedding Metabase in your app, in addition to changing colors and fonts, you can show or hide Metabase-branded UI elements and links (like in-app links to Metabase's documentation). If you're embedding Metabase in your app, here are some settings you might want to change:
|
||||
|
||||
- [Application name](#application-name)
|
||||
- [Logo](#logo)
|
||||
- [Favicon](#favicon)
|
||||
- [Loading message](#loading-message)
|
||||
- [Help link in the settings menu](#help-link-in-the-settings-menu)
|
||||
- [Metabot](#metabot)
|
||||
- [Lighthouse illustration](#lighthouse-illustration)
|
||||
- [Documentation and reference](#documentation-and-references)
|
||||
|
||||
## Application name
|
||||
|
||||
You can change every place in the app that says “Metabase” to something like “Acme Analytics,” or whatever you want to call your Metabase app.
|
||||
@@ -95,6 +108,12 @@ You can decide whether to display our little friend on the home page.
|
||||
|
||||
Show the Metabase lighthouse image on the home and login pages.
|
||||
|
||||
## Documentation and references
|
||||
|
||||
Control the visibility of links to official Metabase documentation and other references to Metabase in your instance.
|
||||
|
||||
This setting affects all links in the product experience that point to Metabase.com URLs (with the exception of links and references in the Admin settings).
|
||||
|
||||
## Further reading
|
||||
|
||||
- [Customer-facing analytics](https://www.metabase.com/learn/customer-facing-analytics).
|
||||
|
||||
@@ -104,7 +104,7 @@ You can also set this property using the environment variable [`MB_SUBSCRIPTION_
|
||||
|
||||
## Suggest recipients on dashboard subscriptions and alerts
|
||||
|
||||
{% include plans-blockquote.html feature="Approved domains for notifications" %}
|
||||
{% include plans-blockquote.html feature="Configuring suggested recipients" %}
|
||||
|
||||
Control which recipients people can see when they create a new [dashboard subscription](../dashboards/subscriptions.md) or [alert](../questions/sharing/alerts.md). For example, you may want to restrict people to viewing potential recipients that belong to the same [groups](../people-and-groups/managing.md#groups) they are a member of.
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ Maximum number of async Jetty threads. If not set, then [MB_JETTY_MAXTHREADS](#m
|
||||
Type: integer<br>
|
||||
Default: `20`<br>
|
||||
|
||||
Limits the number of rows Metabase will include in tables sent as attachments with dashboard subscriptions and alerts. Range: 1-100.
|
||||
Limits the number of rows Metabase will display in tables sent with dashboard subscriptions and alerts. Range: 1-100. To limit the total number of rows included in the file attachment for an email dashboard subscription, use [MB_UNAGGREGATED_QUERY_ROW_LIMIT](#mb_unaggregated_query_row_limit).
|
||||
|
||||
### `MB_AUDIT_MAX_RETENTION_DAYS`
|
||||
|
||||
@@ -898,6 +898,13 @@ Default: `"(&(objectClass=inetOrgPerson)(|(uid={login})(mail={login})))"`
|
||||
|
||||
User lookup filter. The placeholder `{login}` will be replaced by the user supplied login.
|
||||
|
||||
### `MB_LOAD_ANALYTICS_CONTENT`
|
||||
|
||||
Type: Boolean<br>
|
||||
Default: True
|
||||
|
||||
If you want to exclude the [Metabase analytics](../usage-and-performance-tools/usage-analytics.md) collection, you can set `MB_LOAD_ANALYTICS_CONTENT=false`. Setting this environment variable to false can also come in handy when migrating environments, as it can simplify the migration process.
|
||||
|
||||
### `MB_LOADING_MESSAGE`
|
||||
|
||||
Only available on Metabase [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.<br>
|
||||
|
||||
|
After Width: | Height: | Size: 70 KiB |
@@ -5,6 +5,7 @@ redirect_from:
|
||||
---
|
||||
|
||||
# Setting up Metabase
|
||||
|
||||
This guide will help you set up Metabase once you’ve gotten it installed. If you haven’t installed Metabase yet, you can [get Metabase here](https://metabase.com/start).
|
||||
|
||||
Start Metabase up for the first time and you’ll see this screen:
|
||||
@@ -13,22 +14,37 @@ Start Metabase up for the first time and you’ll see this screen:
|
||||
Go ahead and click **Let’s get started**.
|
||||
|
||||
## Setting up an admin account
|
||||
|
||||
The first thing you’ll need to do is set up an admin account. The account you create when you first install Metabase is an admin account by default — handy! If you’ve installed Metabase on a production server, you should be really careful to remember the password for this account since it will be used to add other users, connect to databases, set up email, and more. You can also create additional admin accounts later.
|
||||
|
||||
For now, let's just create an account for ourselves to explore Metabase. Type in your info, and when you’re ready to continue, click the **Next** button.
|
||||
|
||||

|
||||
|
||||
## What will you use Metabase for?
|
||||
|
||||
Let us know your plans with Metabase so that we can best guide you.
|
||||
|
||||

|
||||
|
||||
- Self-service analytics for my own company
|
||||
- Embedding analytics into my application
|
||||
- A bit of both
|
||||
- Not sure yet
|
||||
|
||||
Don't worry about picking the wrong option. If you say you're interested in embedding, Metabase will display a card with a link to the embedding settings when you (the admin) first log in to your instance. Just a little convenience thing, that's all.
|
||||
|
||||
## Gathering your database info
|
||||
|
||||
At this point you’ll need to gather some information about the database you want to use with Metabase. We won’t be able to connect to your database without it, but you’d like to deal with all of this later, that’s okay: just click **I’ll add my data later**. Metabase comes with a [Sample Database](https://www.metabase.com/glossary/sample_database) that you can play around with to get a feel for how Metabase works.
|
||||
|
||||
If you’re ready to connect, here’s what you’ll need:
|
||||
|
||||
* The **hostname** of the server where your database lives
|
||||
* The **port** the database server uses
|
||||
* The **database name**
|
||||
* The **username** you use for the database
|
||||
* The **password** you use for the database
|
||||
- The **hostname** of the server where your database lives
|
||||
- The **port** the database server uses
|
||||
- The **database name**
|
||||
- The **username** you use for the database
|
||||
- The **password** you use for the database
|
||||
|
||||
If you don't have this information handy, the person responsible for administering the database should have it.
|
||||
|
||||
@@ -43,26 +59,27 @@ For more on connecting to databases, see [Adding and managing databases](../data
|
||||
## Usage data preferences
|
||||
|
||||
One last quick thing that you’ll have to decide is if it’s okay for us to collect some anonymous info about how you use the product — it helps us make Metabase better. Like the box says:
|
||||
* Metabase never collects anything about your data or question results.
|
||||
* All collection is completely anonymous.
|
||||
* Collection can be turned off at any point in your admin settings.
|
||||
|
||||
- Metabase never collects anything about your data or question results.
|
||||
- All collection is completely anonymous.
|
||||
- Collection can be turned off at any point in your admin settings.
|
||||
|
||||

|
||||
|
||||
If you’re ready to start using Metabase, go ahead and click **Next**.
|
||||
|
||||
## Staying in touch
|
||||
At this point you are all set and ready to use Metabase. Since we like keeping in touch with our friends we made it easy to sign up for our newsletter (infrequent emails) with a single click!
|
||||
|
||||
At this point you are all set and ready to use Metabase. Since we like keeping in touch with our friends we made it easy to sign up for our newsletter (infrequent emails) with a single click!
|
||||
|
||||

|
||||
|
||||
Once you're done here simply follow the link to **Take me to Metabase**. And if you decided to skip the newsletter sign-up, it's cool, we still like you :)
|
||||
Once you're done here simply follow the link to **Take me to Metabase**. And if you decided to skip the newsletter sign-up, it's cool, we still like you :)
|
||||
|
||||
## Getting started with Metabase
|
||||
|
||||
For a tutorial on getting up and running with questions and dashboards, head over to [Learn Metabase](https://www.metabase.com/learn/getting-started/getting-started.html).
|
||||
|
||||
***
|
||||
|
||||
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/){:target="_blank"}.
|
||||
---
|
||||
|
||||
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/){:target="\_blank"}.
|
||||
|
||||
@@ -19,11 +19,13 @@ Instead of creating duplicate dashboards, you can add filter widgets to let peop
|
||||
- Click the **pencil icon** to enter dashboard editing mode.
|
||||
- Click the **filter icon** that appears in the top-right to add a filter.
|
||||
- Select a [filter type](#filter-types).
|
||||
- [Connect your filter](#connecting-a-filter-to-dashboard-cards) to one or more dashboard cards.
|
||||
- [Connect your filter](#connecting-a-filter-to-dashboard-cards) to one or more dashboard cards on any or all tabs.
|
||||
- [Configure your filter](#editing-a-filter).
|
||||
- **Save** your changes.
|
||||
|
||||
### Filter types
|
||||
Metabase will display the filter only if the filter is connected to a card on the current dashboard tab.
|
||||
|
||||
## Filter types
|
||||
|
||||
You can choose from a number of filter types:
|
||||
|
||||
@@ -33,9 +35,9 @@ You can choose from a number of filter types:
|
||||
- [Number](#number-filter)
|
||||
- [Text or categories](#text-or-category-filter)
|
||||
|
||||
The type of filter you choose will determine how the filter works, as well as which fields you’ll be able to filter your cards by:
|
||||
The type of filter you choose will determine how the filter works, as well as which fields you’ll be able to filter your cards by.
|
||||
|
||||
#### Time filters
|
||||
### Time filters
|
||||
|
||||
When picking a Time filter, Metabase will prompt you to pick a specific type of filter widget:
|
||||
|
||||
@@ -48,7 +50,7 @@ When picking a Time filter, Metabase will prompt you to pick a specific type of
|
||||
|
||||
Single Date and Date Range will provide a calendar widget, while the other options all provide slightly different dropdown interfaces for picking values. To get a widget that's just like the time filter in the query builder, choose All options.
|
||||
|
||||
#### Location filters
|
||||
### Location filters
|
||||
|
||||
There are four types of Location filters to choose from:
|
||||
|
||||
@@ -57,11 +59,11 @@ There are four types of Location filters to choose from:
|
||||
- ZIP or Postal Code
|
||||
- Country
|
||||
|
||||
#### ID filter
|
||||
### ID filter
|
||||
|
||||
The ID filter provides a simple input box where you can type the ID of a user, order, etc.
|
||||
|
||||
#### Number filter
|
||||
### Number filter
|
||||
|
||||
You can choose from:
|
||||
|
||||
@@ -71,7 +73,7 @@ You can choose from:
|
||||
- Greater than or equal to
|
||||
- Less than or equal to
|
||||
|
||||
#### Text or category filter
|
||||
### Text or category filter
|
||||
|
||||
A flexible filter type that will let you create either a dropdown menu or an input box to filter on any category field in your cards. Options include:
|
||||
|
||||
@@ -94,7 +96,7 @@ Here we've wired up a Text filter to the "Event types" card, telling Metabase th
|
||||
|
||||
## Auto-connecting filters to cards
|
||||
|
||||
If there are other cards that also have the field you select, Metabase will automatically connect the filter to those cards too (including cards on other tabs). If you later add a card with the selected field, Metabase will also try to connect that filter to the new card.
|
||||
If there are other cards that also have the field you select, Metabase will automatically connect the filter to those cards too (including to relevant cards on other tabs). If you later add a card with the selected field, Metabase will also try to connect that filter to the new card.
|
||||
|
||||
To undo this auto-connecting of cards, click on the toast that pops up when Metabase auto-connects the cards, or manually disconnect the cards by clicking on the "X" next to the connected field.
|
||||
|
||||
@@ -106,6 +108,15 @@ If you're trying to connect a filter to a card with a native/SQL questions, you'
|
||||
|
||||
You can even wire up filters to text cards, but only if [the text card includes a variable](./introduction.md#including-variables-in-text-cards).
|
||||
|
||||
## Requiring a filter
|
||||
|
||||
You can tell Metabase to require a filter so that people _must_ filter the dashboard by a certain column on a card. If you require a filter, you'll also need to supply a default value for that filter.
|
||||
|
||||
You might want to require a filter value if:
|
||||
|
||||
- Your unfiltered dashboard contains questions that pull lots of data, as enforcing filtered data can prevent people from inadvertently querying tons of data and running up your data warehouse costs.
|
||||
- The questions on your dashboard don't make sense without a filter. For example, if you create a dashboard intended to view data relevant to a specific customer (as opposed to all customers), you can require a customer ID so that the dashboard only loads data for a particular customer.
|
||||
|
||||
## Editing a filter
|
||||
|
||||
To edit a filter's settings:
|
||||
|
||||
BIN
docs/dashboards/images/add-section.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 156 KiB |
BIN
docs/dashboards/images/kpi-grid.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
docs/dashboards/images/kpis-with-large-chart-below.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/dashboards/images/large-chart-with-kpis-to-the-right.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 196 KiB |
BIN
docs/dashboards/images/toggle-width.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
@@ -122,7 +122,11 @@ In both cases, duplication only includes the dashboard, its card layout, filters
|
||||
|
||||
## Arranging dashboard cards
|
||||
|
||||
To edit dashboard cards and move them around, click the **pencil** icon in the top right of a dashboard to enter the dashboard's editing interface. Once you're in edit mode, you'll see a grid appear. You can move and resize the cards in the dashboard to your liking and they'll snap to the grid.
|
||||
To edit dashboard cards and move them around, click the **pencil** icon in the top right of a dashboard to enter the dashboard's editing interface.
|
||||
|
||||
### Editing cards
|
||||
|
||||
Once you're in edit mode, you'll see a grid appear. You can move and resize the cards in the dashboard to your liking and they'll snap to the grid.
|
||||
|
||||

|
||||
|
||||
@@ -131,10 +135,43 @@ To edit dashboard cards and move them around, click the **pencil** icon in the t
|
||||
- **Move a card within a tab**: click and drag the card. Other cards will move out of the way.
|
||||
- **Resize a card**: click the handle at the bottom right corner of the card, and drag to resize. Nearby cards will move away to accommodate the new size.
|
||||
- **Remove a card**: hover over the card and click the X icon in the top right corner.
|
||||
- **Replace a card**: hover over the card and click the Replace icon in the top right corner. Search for a question to swap in for the existing question on that card.
|
||||
- **Replace a card**: hover over the card and click the Replace icon in the top right corner. Search for a question to swap in for the existing question on that card. You can only replace a question with another question, not another type of card (like a text card).
|
||||
|
||||
Metabase will automatically update a question's display to make sure your data looks great at any size you choose.
|
||||
|
||||
### Dashboard sections
|
||||
|
||||
To speed up card arrangement, you can add **sections** to your dashboards.
|
||||
|
||||

|
||||
|
||||
Sections are templates with headings and pre-arranged cards. Once you add a section to a dashboard, you can pick questions for each card, and make any other changes you like. You can only pick questions for cards, not another type of card (like a text card).
|
||||
|
||||
If you forget to set a question for a card, the dashboard will simply render a blank card.
|
||||
|
||||
Sections include:
|
||||
|
||||
**KPI Grid**
|
||||
|
||||

|
||||
|
||||
**Large chart with KPIs to the right**
|
||||
|
||||

|
||||
|
||||
**KPIs with large chart below**
|
||||
|
||||

|
||||
|
||||
### Dashboard width
|
||||
|
||||
You change the width of a dashboard.
|
||||
|
||||

|
||||
|
||||
- **Fixed width** (default). Metabase will restrict the layout to a fixed width in the center of the screen. This fixed width can keep dashboard layouts consistent between smaller laptop screens and larger desktop screens.
|
||||
- **Full width**. The layout and cards will expand to take up the full width of the screen.
|
||||
|
||||
## Changing a card's visualization settings
|
||||
|
||||
You can change a card's visualization settings (to add a goal line, for example). Changing a card's visualization settings will only affect how the question appears on that dashboard card; these changes won't affect the original question's visualization settings.
|
||||
|
||||
@@ -7,7 +7,7 @@ redirect_from:
|
||||
|
||||
# Dashboard subscriptions
|
||||
|
||||
Dashboard subscriptions allow you to send the results of questions on a dashboard to people via email or Slack - even to people who lack an account in your Metabase.
|
||||
Dashboard subscriptions allow you to send the results of questions on a dashboard to people via email or Slack - even to people who lack an account in your Metabase.
|
||||
|
||||
If your Metabase has email or Slack set up, all you need to do is create a dashboard, add subscribers to it, and tell Metabase how often you'd like the send out an update. You can set up as many subscriptions to a dashboard as you like, and if you make any changes to the dashboard, Metabase will update the subscriptions the next time they're delivered.
|
||||
|
||||
@@ -29,11 +29,11 @@ Let's say we want to email a dashboard. We'll click on the **Email it** option i
|
||||
|
||||
For emails, we can:
|
||||
|
||||
- **Add subscribers**. Add email addresses to register subscribers.
|
||||
- **Add subscribers**. Add email addresses to register subscribers. On Metabase [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise), admins can limit email recipients to [approved domains for notifications](../configuring-metabase/email.md#approved-domains-for-notifications) and [configure which recipients Metabase suggests](../configuring-metabase/email.md#suggest-recipients-on-dashboard-subscriptions-and-alerts).
|
||||
- **Determine frequency and timing**. Tell Metabase how often it should send the dashboard (daily, weekly, or monthly), and what time of day to send the dashboard.
|
||||
- **Send email now** sends an email to all subscribers.
|
||||
- **Skip updates without results**. If there are no results, we can tell Metabase to skip sending the email.
|
||||
- **Attach results**. Tell Metabase if it should also attach results to the email (which will include up to 2000 rows of data). You can choose between CSV and XLSX file formats.
|
||||
- **Attach results**. Tell Metabase if it should attach results to the email as a file, in addition to displaying the table in the email body. You can choose between CSV and XLSX file formats. The attached file will include up to 2000 rows by default. If you're self-hosting Metabase, you can adjust this row limit by setting the environment variable [MB_UNAGGREGATED_QUERY_ROW_LIMIT](../configuring-metabase/environment-variables.md#mb_unaggregated_query_row_limit).
|
||||
|
||||
If you've added filters to your dashboard and set default values for those filters, Metabase will apply those default values to your subscriptions, filtering the results of all questions that are connected to those filters when the subscriptions are sent. To learn more, check out [dashboard filters](./filters.md).
|
||||
|
||||
@@ -41,6 +41,8 @@ If you've added filters to your dashboard and set default values for those filte
|
||||
|
||||
For Slack subscriptions, you can set up a subscription for a channel (like #general), or for a single person via their Slack username.
|
||||
|
||||
> Note that Slack username can be different from Slack display name.
|
||||
|
||||

|
||||
|
||||
> If you rename the subscribed channel in Slack, you'll need to update the subscription to point to the new Slack channel name.
|
||||
|
||||
@@ -17,6 +17,8 @@ In general, there are two basic use cases for an SSH tunnel:
|
||||
|
||||
Sometimes when a data warehouse is inside an enterprise environment, direct connections are blocked by security devices such as firewalls and intrusion prevention systems. Bastion hosts offer the option to first connect to a computer on the edge of the protected network, then, from that bastion host computer, establish a second connection to the data warehouse within the internal network, essentially patching these two connections together. Using the SSH tunneling feature, Metabase can automate this process.
|
||||
|
||||
> [Metabase Cloud](https://www.metabase.com/cloud/) does not currently support VPN connections to databases. To connect to databases in private networks, you can instead use SSH tunneling.
|
||||
|
||||
## How to use SSH tunneling
|
||||
|
||||
When connecting though a bastion host:
|
||||
|
||||
@@ -10,21 +10,21 @@ Once you've [enabled uploads](#enabling-uploads), you can [upload files](../expl
|
||||
|
||||
Uploading CSV data is best suited for ad hoc analysis of spreadsheet data. If you have a lot of data, or will need to update or add to that data regularly, we recommend setting up a way to load that data into a database directly, then connecting Metabase to that database.
|
||||
|
||||
## Databases that support uploads
|
||||
|
||||
- [PostgreSQL](../databases/connections/postgresql.md)
|
||||
- [MySQL](../databases/connections/mysql.md)
|
||||
|
||||
## Enabling uploads
|
||||
|
||||
There are a few things admins need to do to support CSV uploads:
|
||||
|
||||
- [Connect to a database using a database user account with write access](#connect-to-a-database-using-a-database-user-account-with-write-access). This way Metabase will be able to store the uploaded data somewhere.
|
||||
- [Select the database and schema you want to store the uploaded data in](#select-the-database-and-schema-that-you-want-to-store-the-data-in).
|
||||
- [(Optional) Specify a prefix for Metabase to prepend to the uploaded tables](#specify-a-prefix-for-metabase-to-prepend-to-the-uploaded-tables).
|
||||
- [Add people to a group with unrestricted data access to the upload schema database](#add-people-to-a-group-with-unrestricted-data-access-to-the-upload-schema).
|
||||
- (Optional) [specify a prefix for Metabase to prepend to the uploaded tables](#specify-a-prefix-for-metabase-to-prepend-to-the-uploaded-tables).
|
||||
|
||||
### Databases that support uploads
|
||||
|
||||
- [PostgreSQL](../databases/connections/postgresql.md)
|
||||
- [MySQL](../databases/connections/mysql.md)
|
||||
|
||||
### Connect to a database using a database user account with write access
|
||||
## Connect to a database using a database user account with write access
|
||||
|
||||
To upload data to Metabase, an admin will need to connect your Metabase to a database that supports uploads using a database user account that has write access to that database.
|
||||
|
||||
@@ -35,7 +35,7 @@ For more, check out:
|
||||
- [Adding and managing databases](./connecting.md)
|
||||
- [Database users, roles, and privileges](./users-roles-privileges.md#privileges-to-enable-uploads)
|
||||
|
||||
### Select the database and schema that you want to store the data in
|
||||
## Select the database and schema that you want to store the data in
|
||||
|
||||
If Metabase is connected to a database using a database user account with write access, Admins can enable uploads by:
|
||||
|
||||
@@ -47,19 +47,23 @@ When people upload a CSV to a collection, Metabase will:
|
||||
- Create a table to store that data in the database and schema that the Admin selected to store uploads.
|
||||
- Create a [model](../data-modeling/models.md) that wraps the uploaded table, and save that model to the collection the person uploaded the CSV data to.
|
||||
|
||||
## Specify a prefix for Metabase to prepend to the uploaded tables
|
||||
|
||||
Admins can optionally specify a string of text to add in front of the table that Metabase creates to store the uploaded data.
|
||||
|
||||
## Add people to a group with unrestricted data access to the upload schema
|
||||
|
||||
In order to upload CSVs, a person must be in a group with Unrestricted access to the schema you've selected to store your uploaded data. Native query editing isn't required for uploading. See [groups](../people-and-groups/managing.md) and [data permissions](../permissions/data.md).
|
||||
|
||||
## Primary key auto-generation
|
||||
|
||||
When you upload a CSV, Metabase will create an a unique primary key column, called `_mb_row_id`, as the first (left-most) column of the uploaded CSV table. This `_mb_row_id` column will contain automatically generated integers. Metabase will also ignore any columns in the upload that have a name that will be in the database with the same name as the auto-generated primary key column (e.g., `_MB row-ID` in the CSV will be `_mb_row_id` or `_MB_ROW_ID` in the database).
|
||||
|
||||
If you don't want this autogenerated ID column, you can always remove the column from the model Metabase created. Visit the model, click on the info **i** icon, then **Model details**. From the model details page, click the **Edit definition** button. In the Data section of the query builder, click on the down arrow next to the table, deselect the added ID column, and save your changes.
|
||||
|
||||
### Add people to a group with unrestricted data access to the upload schema
|
||||
## Data type errors
|
||||
|
||||
In order to upload CSVs, a person must be in a group with Unrestricted access to the schema you've selected to store your uploaded data. Native query editing isn't required for uploading. See [groups](../people-and-groups/managing.md) and [data permissions](../permissions/data.md).
|
||||
|
||||
### Specify a prefix for Metabase to prepend to the uploaded tables
|
||||
|
||||
Admins can optionally specify a string of text to add in front of the table that Metabase creates to store the uploaded data.
|
||||
Metabase will try to guess what the data type is for each column, but if some entries are not like the others, Metabase may not guess the type correctly. For example, if you have a column that starts with integers like 100, 130, 140, then later on a float 105.5, Metabase may reject the upload. To fix this, you'll need to use spreadsheet software to adjust the formatting so that all the integers are formatted as floats (e.g., 100.00, 130.00, 140.00 and so on) before uploading.
|
||||
|
||||
## File size limit
|
||||
|
||||
@@ -67,11 +71,7 @@ CSV files cannot exceed 50 MB in size.
|
||||
|
||||
> While Metabase limits uploads to 50 MB, the server you use to run your Metabase may impose a lower limit. For example, the default client upload limit for [NGINX is 1 MB](https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size). So you may need to change your server settings to allow uploads up to 50 MB. People on Metabase Cloud don't have to worry about this.
|
||||
|
||||
If you have a file larger than 50 MB, the workaround here is to:
|
||||
|
||||
1. Split the data into multiple files.
|
||||
2. Upload those files one by one. Metabase will create a new model for each sheet.
|
||||
3. Consolidate that data by creating a new question or model that joins the data from those constituent models created by each upload.
|
||||
If you have a file larger than 50 MB, the workaround here is to split the data into multiple and [append those files to an existing model](../exploration-and-organization/collections.md#appending-to-a-model-created-by-an-upload).
|
||||
|
||||
## Date formats
|
||||
|
||||
|
||||
10
docs/developers-guide/api-changelog.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: API changelog
|
||||
---
|
||||
|
||||
# Breaking changes to the API interface
|
||||
|
||||
## Metabase 0.49.0
|
||||
- `POST /api/card` and `PUT /api/card/:id`
|
||||
|
||||
The `dataset` key is deprecated and will be removed in a future version, most likely 50. In its place we have added a new key: `type` which is equivalent in that it distinguishes Models from Questions. `type="model"` is equivalent to `dataset=true` and `type="question"` is equivalent to `dataset=false`.
|
||||
@@ -6,6 +6,16 @@ title: Driver interface changelog
|
||||
|
||||
## Metabase 0.49.0
|
||||
|
||||
- The multimethod `metabase.driver/describe-table-fks` has been deprecated in favor of `metabase.driver/describe-fks`.
|
||||
`metabase.driver/describe-table-fks` will be removed in 0.52.0.
|
||||
|
||||
- The multimethod `metabase.driver/describe-fks` has been added. The method needs to be implemented if the database
|
||||
supports the `:foreign-keys` and `:describe-fks` features. It replaces the `metabase.driver/describe-table-fks`
|
||||
method, which is now deprecated.
|
||||
|
||||
- The multimethod `metabase.driver.sql-jdbc.sync.describe-table/describe-fks-sql` has been added. The method needs
|
||||
to be implemented if you want to use the default JDBC implementation of `metabase.driver/describe-fks`.
|
||||
|
||||
- The multimethod `metabase.driver.sql-jdbc.sync.interface/current-user-table-privileges` has been added.
|
||||
JDBC-based drivers can implement this to improve the performance of the default SQL JDBC implementation of
|
||||
`metabase.driver/describe-database`. It needs to be implemented if the database supports the `:table-privileges`
|
||||
|
||||
|
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 220 KiB |
|
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 328 KiB |
@@ -24,7 +24,7 @@ Interactive embedding is the only kind of embedding that [integrates with SSO an
|
||||
|
||||
## Static embedding
|
||||
|
||||
Also known as signed embedding, static embedding is a secure way to embed charts and dashboards.
|
||||
Also known as signed embedding, [static embedding](./static-embedding.md) is a secure way to embed charts and dashboards.
|
||||
|
||||
**When to use static embedding**: you don’t want to give people ad hoc query access to their data for whatever reason, or you want to present data that applies to all of your tenants at once. For example, say you want to showcase some benchmarking stats: if you just want to make those stats available exclusively to your customers, you could use a signed embed.
|
||||
|
||||
@@ -48,7 +48,7 @@ If you'd like to share your data with the good people of the internet, you can c
|
||||
|
||||
## Switching from static to interactive embedding
|
||||
|
||||
[Interactive embedding](./interactive-embedding.md) requires authentication via single sign-on (SSO), so you'll need to set that up both in your Metabase and in your application's server. Check out our [Interactive embedding quick start](https://www.metabase.com/learn/customer-facing-analytics/interactive-embedding-quick-start).
|
||||
[Interactive embedding](./interactive-embedding.md) requires authentication via single sign-on (SSO), so you'll need to set that up both in your Metabase and in your application's server. Check out our [Interactive embedding quick start](https://www.metabase.com/learn/customer-facing-analytics/interactive-embedding-quick-start).
|
||||
|
||||
## Further reading
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ Parameters are pieces of information that are passed between Metabase and your w
|
||||
Parameters can be signed or unsigned.
|
||||
|
||||
**Signed parameters**, such as filter names and values, must be added to your server code.
|
||||
|
||||
- [Editable parameters](#adding-a-filter-widget-to-a-static-embed)
|
||||
- [Locked parameters](#restricting-data-in-a-static-embed)
|
||||
|
||||
@@ -37,7 +38,9 @@ You can use **editable parameters** to add [filter widgets](https://www.metabase
|
||||
|
||||
Editable parameters are responsible for passing filter values from the embedded filter widget (displayed on the iframe) through to the filters on your original dashboard or SQL question (in your Metabase).
|
||||
|
||||
Note that [locked parameters](#restricting-data-in-a-static-embed) may limit the values that show up in an embedded filter widget.
|
||||
### You can't disable parameters when the original question or dashboard requires a value
|
||||
|
||||
If the filter on a dashboard or question is set to [Always require a value](../dashboards/filters.md#requiring-a-filter), you won't be able to disable the parameter when embedding.
|
||||
|
||||
## Populating an embedded filter widget with a default value
|
||||
|
||||
@@ -115,6 +118,8 @@ You can use locked parameters to display filtered data based on attributes captu
|
||||
|
||||
Locked parameters will apply the selected filter values to your original dashboard or SQL question, but they won't be displayed as filter widgets on your embed. Locked parameters may also limit the values that are shown in your [editable filter widgets](#adding-a-filter-widget-to-a-static-embed).
|
||||
|
||||
If you just want to require a value for the parameter, you could set the filter as editable and configure the underlying question or dashboard to [always require a value](../dashboards/filters.md#requiring-a-filter).
|
||||
|
||||
## Updating a locked parameter
|
||||
|
||||
Things to keep in mind if you need to make changes to your locked parameters.
|
||||
@@ -135,7 +140,7 @@ The values for the locked parameter in your server code should match your filter
|
||||
|
||||
If your [locked parameter](#restricting-data-in-a-static-embed) is linked to a dashboard filter that's in turn linked to a SQL question, you'll only be able to choose a _single_ value for your locked parameter.
|
||||
|
||||
For example, let's say you have a dashboard filter called "Breakfast" with the values "Scrambled eggs", "Bacon", and "Waffles". If the "Breakfast" filter is linked to _any_ SQL questions on the dashboard, you'll only be able to choose _one_ of "Scrambled eggs", "Bacon", or "Waffles" for a locked parameter linked to the "Breakfast" filter.
|
||||
For example, let's say you have a dashboard filter called "Breakfast" with the values "Hash browns", "Muffin", and "Waffles". If the "Breakfast" filter is linked to _any_ SQL questions on the dashboard, you'll only be able to choose _one_ of the options for a locked parameter linked to the "Breakfast" filter.
|
||||
|
||||
## Customizing the appearance of a static embed
|
||||
|
||||
@@ -149,17 +154,27 @@ your_embedding_url#theme=night&bordered=false&titled=true
|
||||
|
||||
You can preview appearance settings from your question or dashboard's [embedded appearance settings](./static-embedding.md#customizing-the-appearance-of-static-embeds).
|
||||
|
||||
| Parameter name | Possible values |
|
||||
| ---------------------- | --------------------------------------------- |
|
||||
| bordered | true, false |
|
||||
| titled | true, false |
|
||||
| theme | null, transparent, night |
|
||||
| font¹ | [font name](../configuring-metabase/fonts.md) |
|
||||
| hide_download_button² | true, false |
|
||||
| Parameter name | Possible values |
|
||||
| ----------------------------------------- | --------------------------------------------- |
|
||||
| `bordered` | true, false |
|
||||
| `titled` | true, false |
|
||||
| `theme` | null, transparent, night |
|
||||
| `refresh` (dashboard only) | integer (seconds, e.g., `refresh=60`) |
|
||||
| `font`\* | [font name](../configuring-metabase/fonts.md) |
|
||||
| `hide_download_button`\* (questions only) | true, false |
|
||||
|
||||
¹ Available on [paid plans](https://www.metabase.com/pricing).
|
||||
\* Available on [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.
|
||||
|
||||
### Allow people to download the results of an embedded question
|
||||
|
||||
{% include plans-blockquote.html feature="Downloading results" %}
|
||||
|
||||
By default, Metabase will include a **Download** button on embedded questions. You can remove the download button by setting `hide_download_button=true` in the embedding URL in the iframe's `src` attribute, see [customizing the appearance of static embeds](./static-embedding.md#customizing-the-appearance-of-static-embeds).
|
||||
|
||||
If the download button is missing when you expected it to be available, check that the URL in the `src` attribute for your iframe has the parameter `hide_download_button=false`.
|
||||
|
||||
> Downloading results is available only for questions, not dashboards.
|
||||
|
||||
² Available on [paid plans](https://www.metabase.com/pricing) and works on questions only (not dashboards).
|
||||
|
||||
## Maximum request size
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ Also known as: standalone embedding, or signed embedding.
|
||||
|
||||
In general, embedding works by displaying a Metabase URL inside an iframe in your website. A **static embed** (or signed embed) is an iframe that's loading a Metabase URL secured with a signed JSON Web Token (JWT). Metabase will only load the URL if the request supplies a JWT signed with the secret shared between your app and your Metabase. The JWT also includes a reference to the resource to load, e.g., the dashboard ID, and any values for locked parameters.
|
||||
|
||||
You can can't use static embeds with [data sandboxes](../permissions/data-sandboxes.md), [drill-through](https://www.metabase.com/learn/questions/drill-through) or [auditing tools](../usage-and-performance-tools/audit.md) because signed JWTs don't create user sessions (server-side sessions). For those features, check out [interactive embedding](./interactive-embedding.md).
|
||||
You can can't use static embeds with [data sandboxes](../permissions/data-sandboxes.md), [drill-through](https://www.metabase.com/learn/questions/drill-through), and user-specific data isn't captured in [usage analytics](../usage-and-performance-tools/usage-analytics.md) because signed JWTs don't create user sessions (server-side sessions). For those features, check out [interactive embedding](./interactive-embedding.md).
|
||||
|
||||
To restrict data in static embeds for specific people or groups, set up [locked parameters](./static-embedding-parameters.md#restricting-data-in-a-static-embed) instead.
|
||||
You can, however, restrict data in static embeds for specific people or groups by [locking parameters](./static-embedding-parameters.md#restricting-data-in-a-static-embed).
|
||||
|
||||
## How static embedding works
|
||||
|
||||
@@ -30,23 +30,26 @@ To prevent people from editing the embedding URL to get access to other parts of
|
||||
your_metabase_embedding_url/your_signed_jwt?filter=true
|
||||
```
|
||||
|
||||
The signed JWT is generated using your [Metabase secret key](#regenerating-the-secret-key). The secret key tells Metabase that the request for filtered data can be trusted, so it's safe to display the results at the new embedding URL. Note that this secret key is shared for all static embeds, so whoever has access to that key will have access to all embedded artifacts.
|
||||
The signed JWT is generated using your [Metabase secret key](#regenerating-the-static-embedding-secret-key). The secret key tells Metabase that the request for filtered data can be trusted, so it's safe to display the results at the new embedding URL. Note that this secret key is shared for all static embeds, so whoever has access to that key will have access to all embedded artifacts.
|
||||
|
||||
If you want to embed charts with additional interactive features, like [drill-down](https://www.metabase.com/learn/questions/drill-through) and [self-service querying](../questions/query-builder/introduction.md), see [Interactive embedding](./interactive-embedding.md).
|
||||
|
||||
## Enabling the embedding feature in Metabase
|
||||
## Turning on the embedding feature in Metabase
|
||||
|
||||
1. Go to **Settings** > **Admin settings** > **Embedding**.
|
||||
2. Click **Enable**.
|
||||
2. Toggle the **Enable embedding**.
|
||||
|
||||
## Making a question or dashboard embeddable
|
||||
|
||||
To create a static embed:
|
||||
|
||||
1. Go to the question or dashboard that you want to embed in your website.
|
||||
2. Click on the **sharing icon** (square with an arrow pointing to the top right).
|
||||
3. Select **Embed this item in an application**.
|
||||
4. Optional: [Preview the appearance of the embed](#customizing-the-appearance-of-static-embeds).
|
||||
5. Optional: [Add parameters to the embed](./static-embedding-parameters.md).
|
||||
6. Click **Publish**.
|
||||
2. Click on the **sharing icon**. On dashboards, the icon is in the top right. On questions, it's in the bottom right.
|
||||
3. Select **Embed**.
|
||||
4. On the **Static embed** card, click the button: **Set this up**.
|
||||
5. Optional: [Preview the appearance of the embed](#customizing-the-appearance-of-static-embeds).
|
||||
6. Optional: [Add parameters to the embed](./static-embedding-parameters.md).
|
||||
7. Click **Publish**.
|
||||
|
||||

|
||||
|
||||
@@ -60,32 +63,37 @@ metabase_site_url/embed/question/your_jwt_token?parameter_name=value
|
||||
|
||||
Once you've made a question or dashboard [embeddable](#making-a-question-or-dashboard-embeddable), you'll need to put the embedding URL for that question or dashboard on your website:
|
||||
|
||||
1. Go to the question or dashboard > **sharing icon** > **Embed this item in an application**.
|
||||
2. Click **Code**.
|
||||
3. Optional: [Preview the server code](#previewing-the-frontend-code-for-an-embed).
|
||||
4. Add the server code to the file that builds your website.
|
||||
5. Optional: [Preview the frontend code](#previewing-the-frontend-code-for-an-embed).
|
||||
6. Add the frontend code to the HTML file where you want your static embed to appear.
|
||||
1. Go to the question or dashboard > **sharing icon** > **Embed**.
|
||||
2. Make any changes and copy the code.
|
||||
3. [Preview the code](#previewing-the-code-for-an-embed)
|
||||
4. Add the code to the server code that builds your website.
|
||||
6. Add the frontend code to the code that generates the page where you want the embedded item to appear.
|
||||
|
||||
For more examples, see our [reference apps repo](https://github.com/metabase/embedding-reference-apps).
|
||||
|
||||
## Previewing the server code for an embed
|
||||
## Previewing the code for an embed
|
||||
|
||||
1. Go to the question or dashboard > **sharing icon** > **Embed this item in an application**.
|
||||
2. Click **Code**.
|
||||
3. In the top code block, you'll find the sample code for your web server.
|
||||
4. Optional: Select your web framework from the dropdown menu.
|
||||
3. In the top code block, you'll find the sample code for your web server. You'll also find the iframe snippet to plug into your HTML template or single page app.
|
||||
|
||||
When you make changes to the style, appearance, or parameter preview settings, the server code sample will update as well. Make sure to copy these changes to your actual server code.
|
||||
When you make changes to the style, appearance, or parameter preview settings, Metabase will update the code and highlight the changes. Make sure to copy these changes to your actual server code.
|
||||
|
||||

|
||||
|
||||
## Previewing the frontend code for an embed
|
||||
Metabase generates server code for:
|
||||
|
||||
1. Go to the question or dashboard > **sharing icon** > **Embed this item in an application**.
|
||||
2. Click **Code**.
|
||||
3. In the bottom code block, get the sample code for your frontend.
|
||||
4. Optional: Select your template language from the dropdown menu.
|
||||
- Clojure
|
||||
- Node.js
|
||||
- Python
|
||||
- Ruby
|
||||
|
||||
For iframe snippets:
|
||||
|
||||
- ERB
|
||||
- JSX
|
||||
- Mustache
|
||||
- Pug/Jade
|
||||
|
||||
## Editing an embedded question or dashboard
|
||||
|
||||
@@ -105,39 +113,54 @@ You can find a list of all embedded questions and dashboards from **Admin settin
|
||||
|
||||
## Customizing the appearance of static embeds
|
||||
|
||||
You can change the way an embedded question or dashboard looks in an iframe (which won't change how it looks in your Metabase instance). Settings include:
|
||||
You can change the way an embedded question or dashboard looks in an iframe (which won't change how it looks in your Metabase instance).
|
||||
|
||||
When setting up a static embed, click on the **Appearance** tab, and play around with the different appearance settings.
|
||||
|
||||
Settings include:
|
||||
|
||||
- Border
|
||||
- Title
|
||||
- Theme (light, dark, transparent)
|
||||
- Font¹
|
||||
- Download data²
|
||||
- Font\*
|
||||
- Download data (questions only)\*
|
||||
|
||||
¹ Available on [paid plans](https://www.metabase.com/pricing).
|
||||
\* Available on [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.
|
||||
|
||||
² Available on [paid plans](https://www.metabase.com/pricing) and hides the download button on questions only (not dashboards).
|
||||
|
||||
To update the appearance of a static embed:
|
||||
|
||||
1. Optional: Preview the appearance changes from your question or dashboard's embedding settings (**sharing icon** > **Embed this item in an application**).
|
||||
2. Optional: Click **Code** to find the updated server code snippet in the top code block.
|
||||
3. Change the [parameters](./static-embedding-parameters.md#customizing-the-appearance-of-a-static-embed) in your actual server code.
|
||||
When you make changes to the embed's appearance, Metabase will highlight the changes it made to the code.
|
||||
|
||||
For global appearance settings, such as the colors and fonts used across your entire Metabase instance, see [Customizing Metabase's appearance](../configuring-metabase/appearance.md).
|
||||
|
||||
## Auto-refreshing the results of an embedded dashboard
|
||||
|
||||
> Auto-refreshing is only available for dashboards, not questions.
|
||||
|
||||
To refresh the results of a dashboard at a specific cadence, you can parameterize the embedded URL with `refresh`. For example, to set an embedded dashboard to refresh every 60 seconds, you would append `refresh=60` to the URL.
|
||||
|
||||
For example, the following code for generating an iframe URL for a dashboard would display the dashboard's title and refresh its results every 60 seconds.
|
||||
|
||||
```js
|
||||
var iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token +
|
||||
"#titled=true&refresh=60";
|
||||
```
|
||||
|
||||
For the full list options you can parameterize, see [customizing the appearance of a static embed](./static-embedding-parameters.md#customizing-the-appearance-of-a-static-embed).
|
||||
|
||||
## Removing the "Powered by Metabase" banner
|
||||
|
||||

|
||||
|
||||
The banner appears on signed embeds created with Metabase's open-source version. You'll need to upgrade to a [Pro or Enterprise plan](https://www.metabase.com/pricing) to remove the banner.
|
||||
The banner appears on static embeds created with Metabase's open-source version. To remove the banner, you'll need to upgrade to a [Pro](https://www.metabase.com/product/pro) or [Enterprise](https://www.metabase.com/product/enterprise) plan.
|
||||
|
||||
## Regenerating the secret key
|
||||
## Regenerating the static embedding secret key
|
||||
|
||||
Your embedding secret key is used to sign JWTs for all of your [embedding URLs](#adding-the-embedding-url-to-your-website). You can find it under **Settings** > **Admin settings** > **Embedding**.
|
||||
Your embedding secret key is used to sign JWTs for all of your [embedding URLs](#adding-the-embedding-url-to-your-website).
|
||||
|
||||
To reiterate: this key is shared across all static embeds. Whoever has access to this key could get access to all embedded artifacts, so keep this key secure.
|
||||
1. Go to **Settings** > **Admin settings** > **Embedding**.
|
||||
2. On the **Static embedding** card, click on **Manage**.
|
||||
3. Under **Regenerate secret key**, click **Regenerate key**.
|
||||
|
||||
**Regenerate key** will create a new secret key, and break any embedding URLs that used the old key.
|
||||
This key is shared across all static embeds. Whoever has access to this key could get access to all embedded artifacts, so keep this key secure. If you regenerate this key, you'll need to update your server code with the new key.
|
||||
|
||||
## Resizing dashboards to fit their content
|
||||
|
||||
|
||||
@@ -82,6 +82,18 @@ Metabase will create a [model](../data-modeling/models.md) that contains that CS
|
||||
|
||||
Uploads will only be available if your admin has enabled uploads for your Metabase, and you're in a group with Unrestricted access to the schema used to store those uploads. See [Uploading data](../databases/uploads.md).
|
||||
|
||||
## Appending to a model created by an upload
|
||||
|
||||
You can upload additional CSV data to an existing model created by a previous CSV upload.
|
||||
|
||||

|
||||
|
||||
The uploaded CSV must have the same column name, order, and type as the columns in the model. Metabase will look for a header row to check that the column names are the same. So if you split a large CSV into multiple CSVs, make sure to include header rows for all of the files.
|
||||
|
||||
When appending, Metabase will simply insert the rows into the underlying table, which will update the model that sits on top of that table. If you have duplicate rows from one upload to the next, Metabase will preserve those duplicate rows.
|
||||
|
||||
The upload icon will only be visible on models created by uploads.
|
||||
|
||||
## Further reading
|
||||
|
||||
- [Keeping your analytics organized](https://www.metabase.com/learn/administration/same-page)
|
||||
|
||||
BIN
docs/exploration-and-organization/images/append-data.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
@@ -24,23 +24,29 @@ Metabase can run anywhere Java is available.
|
||||
|
||||
If you prefer to use a Docker container, we've got you covered.
|
||||
|
||||
### [Running on Podman](running-metabase-on-podman.md)
|
||||
## Professional services from the Metabase team
|
||||
|
||||
Our Docker image is also compatible with Podman.
|
||||
If you want help with:
|
||||
|
||||
### [Building Metabase from source](../developers-guide/start.md)
|
||||
- Set up
|
||||
- Training
|
||||
- Data stack
|
||||
- Embedding
|
||||
- Data modeling
|
||||
|
||||
To run a development branch of Metabase, check out our [developer's guide](../developers-guide/start.md).
|
||||
|
||||
### Other installation options
|
||||
|
||||
- [Running on Azure Web Apps](running-metabase-on-azure.md)
|
||||
- [Running on Debian as a service](running-metabase-on-debian.md)
|
||||
Check out our [professional services](https://www.metabase.com/product/professional-services).
|
||||
|
||||
## Upgrading Metabase
|
||||
|
||||
See [Upgrading Metabase](upgrading-metabase.md).
|
||||
See [Upgrading Metabase](upgrading-metabase.md)
|
||||
|
||||
## Other installation options
|
||||
|
||||
- [Running on Podman](running-metabase-on-podman.md)
|
||||
- [Building Metabase from source](../developers-guide/start.md)
|
||||
- [Running on Azure Web Apps](running-metabase-on-azure.md)
|
||||
- [Running on Debian as a service](running-metabase-on-debian.md)
|
||||
|
||||
## Connect with a Metabase Expert
|
||||
|
||||
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/).
|
||||
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/).
|
||||
@@ -7,9 +7,13 @@ redirect_from:
|
||||
|
||||
# Migrating to a production application database
|
||||
|
||||
This page covers how to convert a Metabase that's been using the built-in application database, H2, to a production-ready instance with either PostgreSQL or MySQL/MariaDB. For more on why you should do this, check out [How to run Metabase in production](https://www.metabase.com/learn/administration/metabase-in-production).
|
||||
|
||||
If you'd rather move to Metabase Cloud, check out [Migrate to Metabase Cloud](https://www.metabase.com/docs/latest/cloud/migrate/guide).
|
||||
|
||||
## Metabase's application database
|
||||
|
||||
The main difference between a local installation and a production installation of Metabase is the application database. The application database keeps track of all of your Metabase data: your questions, dashboards, collections, and so on.
|
||||
The main difference between a local installation and a production installation of Metabase is the application database. This application database keeps track of all of your Metabase data: your questions, dashboards, collections, and so on.
|
||||
|
||||
Metabase ships with an embedded H2 application database that you should avoid using in production. The reason Metabase ships with the H2 database is because we want people to spin up Metabase on their local machine and start playing around with asking questions.
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ If you have a token for the [Pro or Enterprise editions](https://www.metabase.co
|
||||
|
||||
If you have Java installed:
|
||||
|
||||
1. [Download the JAR file for Metabase OSS](https://metabase.com/start/oss/jar).
|
||||
1. [Download the JAR file for Metabase OSS](https://metabase.com/start/oss/jar). If you're on a [Pro](https://www.metabase.com/product/pro) or [Enterprise](https://www.metabase.com/product/enterprise) plan, download the [JAR for the Enterprise Edition](https://downloads.metabase.com/enterprise/latest/metabase.jar).
|
||||
2. Create a new directory and move the Metabase JAR into it.
|
||||
3. Change into your new Metabase directory and run the JAR.
|
||||
|
||||
@@ -27,6 +27,8 @@ java -jar metabase.jar
|
||||
|
||||
Metabase will log its progress in the terminal as it starts up. Wait until you see "Metabase Initialization Complete" and visit `http://localhost:3000/setup`.
|
||||
|
||||
If you are using a paid version, be sure to [activate your license](../paid-features/activating-the-enterprise-edition.md).
|
||||
|
||||
## Local installation
|
||||
|
||||
If you just want to try Metabase out, play around with Metabase, or just use Metabase on your local machine, Metabase ships with a default application database that you can use. **This setup is not meant for production**. If you intend to run Metabase for real at your organization, see [Production installation](#production-installation).
|
||||
@@ -45,7 +47,10 @@ If Java isn't installed, you'll need to install Java before you can run Metabase
|
||||
|
||||
### 2. Download Metabase
|
||||
|
||||
[Download the JAR file for Metabase OSS](https://www.metabase.com/start/oss/jar).
|
||||
Download the JAR file:
|
||||
|
||||
- [Metabase OSS](https://www.metabase.com/start/oss/jar)
|
||||
- [Metabase Enterprise/Pro edition](https://downloads.metabase.com/enterprise/latest/metabase.jar)
|
||||
|
||||
If you want to install the [Pro or Enterprise editions](https://www.metabase.com/pricing) of Metabase, see [Activating your Metabase commercial license](../paid-features/activating-the-enterprise-edition.md).
|
||||
|
||||
@@ -98,7 +103,7 @@ At this point you're ready to go! You can access your new Metabase server on por
|
||||
|
||||
You can use another port than 3000 by setting the `MB_JETTY_PORT` [environment variable](../configuring-metabase/environment-variables.md) before running the jar.
|
||||
|
||||
Note that in the default configuration Metabase will use a local H2 database for storing all its own application data. This default is meant for simple evaluation or personal use. If you want to run Metabase in production we recommend you [migrate away from H2](./migrating-from-h2.md).
|
||||
If you are using a paid version of Metabase, be sure to [activate your license](../paid-features/activating-the-enterprise-edition.md).
|
||||
|
||||
## Production installation
|
||||
|
||||
@@ -144,7 +149,7 @@ If you need to run the JAR in production, you should run Metabase as a service.
|
||||
|
||||
The exact instructions for how to run Metabase as a service will differ depending on your operating system. For an example of how to set up Metabase as a service, check out [Running Metabase on Debian](./running-metabase-on-debian.md).
|
||||
|
||||
## Migrating to a production installation
|
||||
### Migrating to a production installation
|
||||
|
||||
If you've been running Metabase with the default H2 application database and your team has already created questions, dashboards, collections and so on, you'll want to migrate that data to a production application database. And the sooner you do, the better. See [Migrating from the H2 database](migrating-from-h2.md).
|
||||
|
||||
@@ -156,6 +161,6 @@ If you run into any problems during installation, check out our [troubleshooting
|
||||
|
||||
See [Upgrading Metabase](upgrading-metabase.md).
|
||||
|
||||
## Continue to setup
|
||||
## Setting up Metabase
|
||||
|
||||
Now that you’ve installed Metabase, it’s time to [set it up and connect it to your database](../configuring-metabase/setting-up-metabase.md).
|
||||
|
||||
@@ -283,8 +283,194 @@ If you've written scripts to automate serialization, you'll need to:
|
||||
|
||||
Before exporting, you can also run a Metabase command to [drop entity IDs](./commands.md#drop-entity-ids).
|
||||
|
||||
## Serializing Metabase via the API
|
||||
|
||||
> Just like the CLI serialization commands, these endpoints are only available for [Pro](https://www.metabase.com/product/pro) and [Enterprise](https://www.metabase.com/product/enterprise) plans.
|
||||
|
||||
You can initiate imports and exports of serialized Metabase data via the API.
|
||||
|
||||
There are two endpoints:
|
||||
|
||||
- `/api/ee/serialization/export`
|
||||
- `/api/ee/serialization/import`
|
||||
|
||||
For now, these endpoints are synchronous. If the serialization process takes too long, the request can time out. In this case, we suggest using the CLI commands.
|
||||
|
||||
### Use parameters to customize what Metabase exports
|
||||
|
||||
You can append optional parameters to tell Metabase what to include or exclude from the export. You can also combine parameters (excluding, of course, `all_collections` and selective collections).
|
||||
|
||||
So, assuming you're testing on `localhost`, and you want to exclude all collections from the export, you'd format the URL like so:
|
||||
|
||||
```html
|
||||
http://localhost:3000/api/ee/serialization/export?all_collections=false
|
||||
```
|
||||
|
||||
You can include multiple parameters, separated by `&`. For example, to exclude both the settings and the data model from the export:
|
||||
|
||||
```html
|
||||
http://localhost:3000/api/ee/serialization/export?data_model=false&settings=false
|
||||
```
|
||||
|
||||
## Example export params
|
||||
|
||||
### `collection`
|
||||
|
||||
Type: Array of integers.
|
||||
|
||||
Default value: Metabase will export all collections, unless `all_collections` is set to `false`.
|
||||
|
||||
To select which collections to export, include the collection IDs. For example, to include collections `1` and `2`:
|
||||
|
||||
```html
|
||||
collection=1&collection=2
|
||||
```
|
||||
|
||||
### `all_collections`
|
||||
|
||||
Type: Boolean
|
||||
|
||||
Default: `true` (unless you specify a subset of collections with `collection`).
|
||||
|
||||
To exclude all collections:
|
||||
|
||||
```html
|
||||
all_collections=false
|
||||
```
|
||||
|
||||
### `settings`
|
||||
|
||||
Type: Boolean.
|
||||
|
||||
Default: `true`.
|
||||
|
||||
To exclude settings:
|
||||
|
||||
```html
|
||||
settings=false
|
||||
```
|
||||
|
||||
### `data_model`
|
||||
|
||||
Type: Boolean.
|
||||
|
||||
Default: `true`.
|
||||
|
||||
To exclude the data model:
|
||||
|
||||
```
|
||||
data_model=false
|
||||
```
|
||||
|
||||
### `field_values`
|
||||
|
||||
Type: Boolean.
|
||||
|
||||
Default: `false`.
|
||||
|
||||
To include field values:
|
||||
|
||||
```
|
||||
field_values=true
|
||||
```
|
||||
|
||||
### `database_secrets`
|
||||
|
||||
Type: Boolean.
|
||||
|
||||
Default: `false`.
|
||||
|
||||
To include secrets:
|
||||
|
||||
```html
|
||||
database_secrets=true
|
||||
```
|
||||
|
||||
### `dirname`
|
||||
|
||||
Type: String.
|
||||
|
||||
Default: `<instance-name>-<YYYY-MM-dd_HH_mm>`
|
||||
|
||||
To specify a different directory:
|
||||
|
||||
```
|
||||
dirname=name_of_your_directory
|
||||
```
|
||||
|
||||
## You must compress your files when serializing via API calls
|
||||
|
||||
To keep file sizes over the network under control, both the `export` and `import` endpoints expect GZIP-compressed Tar files (`.tgz`).
|
||||
|
||||
### Compress a directory
|
||||
|
||||
To compress a directory (e.g., a directory named `metabase_data`).
|
||||
|
||||
```sh
|
||||
tar -czf metabase_data
|
||||
```
|
||||
|
||||
### Extract a directory
|
||||
|
||||
To extract/unzip a directory:
|
||||
|
||||
```sh
|
||||
tar -xvf metabase_data.tgz
|
||||
```
|
||||
|
||||
## Metabase adds logs to exports and imports
|
||||
|
||||
Exports: Metabase adds logs to the compressed directory as `export.log`.
|
||||
|
||||
Imports: You can add the `-o -` flag to export logs directly into the terminal, or `-o import.log` to save to a file.
|
||||
|
||||
### Example export request with `curl`
|
||||
|
||||
To export the contents of your Metabase, first set up an [API key](../people-and-groups/api-keys.md) and assign the key to the Admin group.
|
||||
|
||||
Then run:
|
||||
|
||||
```sh
|
||||
curl \
|
||||
-H 'x-api-key: YOUR_API_KEY' \
|
||||
-X POST 'http://localhost:3000/api/ee/serialization/export' \
|
||||
-o metabase_data.tgz
|
||||
```
|
||||
|
||||
Substituting `YOUR_API_KEY` with your API key. This command will download the files as a GZIP-compressed Tar file named `metabase_data.tgz`.
|
||||
|
||||
You'll then need to unzip the compressed file:
|
||||
|
||||
```sh
|
||||
tar -xvf metabase_data.tgz
|
||||
```
|
||||
|
||||
The extracted directory will be called something like `metabase-yyyy-MM-dd_HH-mm`, with the date and time of the export.
|
||||
|
||||
### Example import request with `curl`
|
||||
|
||||
To import contents into your Metabase, first set up an [API key](../people-and-groups/api-keys.md) and assign the key to the Admin group.
|
||||
|
||||
Let's say you have your YAML files with Metabase application data in a directory called `metabase_data`. Before importing those files to your target Metabase, you'll need to compress those files.
|
||||
|
||||
```sh
|
||||
tar -czf metabase_data.tgz metabase_data
|
||||
```
|
||||
|
||||
Then post to the `/api/ee/serialization/import`. From the directory where you've stored your GZIP-compressed file, run:
|
||||
|
||||
```sh
|
||||
curl -X POST \
|
||||
-H 'x-api-key: YOUR_API_KEY' \
|
||||
-F file=@metabase_data.tgz \
|
||||
'http://localhost:3000/api/ee/serialization/import' \
|
||||
-o -
|
||||
```
|
||||
|
||||
Substituting `YOUR_API_KEY` with your API key. The `-o -` option will output logs in the terminal.
|
||||
|
||||
## Further reading
|
||||
|
||||
- [Serialization tutorial](https://www.metabase.com/learn/administration/serialization).
|
||||
- [Setting up a git-based workflow](https://www.metabase.com/learn/administration/git-based-workflow)
|
||||
- [Setting up a git-based workflow](https://www.metabase.com/learn/administration/git-based-workflow).
|
||||
- Need help? Contact [support@metabase.com](mailto:support@metabase.com).
|
||||
|
||||
@@ -10,28 +10,13 @@ The birth, care, and feeding of your Metabase.
|
||||
|
||||
Start here.
|
||||
|
||||
### [Running the Jar File](running-the-metabase-jar-file.md)
|
||||
## [Migrating to a production database](./migrating-from-h2.md)
|
||||
|
||||
The simplest and most basic way of running Metabase.
|
||||
If you started using Metabase with the default, H2 application database, here's how to migrate your data to a production-ready database.
|
||||
|
||||
### [Running on Docker](running-metabase-on-docker.md)
|
||||
## [Configuring the Metabase application database](./configuring-application-database.md)
|
||||
|
||||
If you prefer to use a Docker container, we've got you covered.
|
||||
|
||||
### [Metabase Cloud](https://www.metabase.com/pricing)
|
||||
|
||||
Our official hosted version, [Metabase Cloud](https://www.metabase.com/pricing). All you need to do is sign up for a free trial, and you're off to the races.
|
||||
|
||||
### Other installation options
|
||||
|
||||
We recommend that you deploy Metabase using a service and cloud provider that you're familiar with. Below are some example setups:
|
||||
|
||||
- [Running on Azure Web Apps](running-metabase-on-azure.md)
|
||||
- [Running on Debian as a service](running-metabase-on-debian.md)
|
||||
|
||||
## [Building Metabase from source](../developers-guide/start.md)
|
||||
|
||||
To run a development branch of Metabase, check out our [developer's guide](../developers-guide/start.md).
|
||||
Use environment variables to set up your application database.
|
||||
|
||||
## [Backing up Metabase application data](./backing-up-metabase-application-data.md)
|
||||
|
||||
@@ -41,15 +26,11 @@ How to back up your Metabase data: questions, dashboards, and other application
|
||||
|
||||
How to safely upgrade your Metabase.
|
||||
|
||||
## [Migrating from H2](./migrating-from-h2.md)
|
||||
## [Serialization](./serialization.md)
|
||||
|
||||
If you started using Metabase with the default, H2 application database, here's how to migrate your data to a production-ready database.
|
||||
Export your questions, dashboards, and more as YAML files that you can check into version control.
|
||||
|
||||
## [Creating an RDS database on AWS](./creating-RDS-database-on-AWS.md)
|
||||
|
||||
How to use an RDS instance as your application database.
|
||||
|
||||
## [Monitoring your metabase](./monitoring-metabase.md)
|
||||
## [Monitoring your Metabase](./monitoring-metabase.md)
|
||||
|
||||
Monitor your Metabase with JMX.
|
||||
|
||||
@@ -61,6 +42,10 @@ Export Metabase metrics for viewing with Prometheus.
|
||||
|
||||
Rest in peace, Internet Explorer.
|
||||
|
||||
## [Command line commands](./commands.md)
|
||||
|
||||
Metabase's CLI.
|
||||
|
||||
***
|
||||
|
||||
If you’d like more technical resources to set up your data stack with Metabase, connect with a [Metabase Expert](https://www.metabase.com/partners/).
|
||||
|
||||
@@ -22,6 +22,7 @@ Paid plans include more ways to authenticate people and manage groups.
|
||||
- [Setting up SAML with Keycloak](../people-and-groups/saml-keycloak.md)
|
||||
- [Setting up SAML with Okta](../people-and-groups/saml-okta.md)
|
||||
- [Authenticating with JWT](../people-and-groups/authenticating-with-jwt.md)
|
||||
- [Multiple domains with Google Sign-in](../people-and-groups/google-and-ldap.md#multiple-domains-for-google-sign-in)
|
||||
|
||||
## Permissions
|
||||
|
||||
|
||||
@@ -8,36 +8,50 @@ redirect_from:
|
||||
|
||||
Enabling [Google Sign-In](https://developers.google.com/identity/sign-in/web/sign-in) or [LDAP](https://www.metabase.com/glossary/ldap) for single sign-on (SSO) lets your team log in with a click instead of using email and password. SSO can also be used to let people create Metabase accounts without asking an admin to add each person manually. You can find SSO options under **Settings** > **Admin settings** > **Authentication**.
|
||||
|
||||
If you'd like to have people authenticate with [SAML][saml-docs] or [JWT][jwt-docs], Metabase's [paid plans](https://www.metabase.com/pricing) let you do just that.
|
||||
|
||||
As time goes on we may add other auth providers. If you have a service you’d like to see work with Metabase, please let us know by [filing an issue](http://github.com/metabase/metabase/issues/new).
|
||||
If you'd like to have people authenticate with [SAML][saml-docs] or [JWT][jwt-docs], Metabase's [paid plans](https://www.metabase.com/pricing) let you do just that. As time goes on we may add other auth providers. If you have a service you’d like to see work with Metabase, please let us know by [filing an issue](http://github.com/metabase/metabase/issues/new).
|
||||
|
||||
## Enabling Google Sign-In
|
||||
|
||||
Google Sign-In is a good option for SSO if:
|
||||
Google Sign-In is a good option for SSO if:
|
||||
|
||||
- Your team is already using Google Workspace, or
|
||||
- You'd like to use Google's 2-step or multi-factor authentication (2FA or MFA) to secure your Metabase.
|
||||
|
||||
### Working in the Google developer console
|
||||
## Get your Client ID from the Google developer console
|
||||
|
||||
To let your team start signing in with Google you’ll first need to create an application through Google’s [developer console](https://console.developers.google.com/projectselector2/apis/library).
|
||||
To let your team start signing in with Google, you’ll first need to create an application through Google’s [developer console](https://console.developers.google.com/projectselector2/apis/library).
|
||||
|
||||
Next, you'll have to create authorization credentials for your application by following [the instructions from Google here](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid). Specify the URI of your Metabase instance in the “Authorized JavaScript origins” section. You should leave the “Authorized Redirect URIs” section blank.
|
||||
Next, you'll have to create authorization credentials and [get a Google API Client ID](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid):
|
||||
|
||||
Once you have your `Client ID` (ending in `.apps.googleusercontent.com`), click `Configure` on the "Sign in with Google" section of the Authentication page in the Metabase Admin Panel. Paste your `client_id` into the first box.
|
||||
- In the `Authorized JavaScript origins` section, specify the URI of your Metabase instance.
|
||||
- Leave the `Authorized Redirect URIs` section blank.
|
||||
- Copy your Client ID, which you'll paste into Metabase when setting up Google Sign-in.
|
||||
|
||||
Now existing Metabase users signed into a Google account that matches their Metabase account email can sign in with just a click.
|
||||
## Setting up Google Sign-in in Metabase
|
||||
|
||||
Once you have your Google API `Client ID` (ending in `.apps.googleusercontent.com`), visit your Metabase and:
|
||||
|
||||
1. Click on the settings **Gear** icon in the upper right.
|
||||
2. Select **Admin settings**.
|
||||
3. In the **Settings** tab, click on **Authentication**.
|
||||
4. On the **Sign in with Google** card, click **Set up**.
|
||||
5. In the **Client ID** field, paste your Google API Client ID.
|
||||
|
||||
### Creating Metabase accounts with Google Sign-in
|
||||
|
||||
> On [paid plans](https://www.metabase.com/pricing), you're [charged for each additional account](https://www.metabase.com/docs/latest/cloud/how-billing-works#what-counts-as-a-user-account).
|
||||
> On [paid plans](https://www.metabase.com/pricing), you're [charged for each active account](https://www.metabase.com/docs/latest/cloud/how-billing-works#what-counts-as-a-user-account).
|
||||
|
||||
You can optionally tell Metabase to automatically create an account on someone's first SSO login.
|
||||
If people's Google account email addresses are from a specific domain, and you want to allow them to sign up on their own, you can enter that domain in the **Domain** field.
|
||||
|
||||
Once you've added your Google Client ID to your Metabase settings, go to the Google Sign-In configuration page, and specify the email domain you want to allow. For example, if you work at WidgetCo you could enter "widgetco.com" in the field to let anyone with a company email sign up on their own.
|
||||
Once set up, existing Metabase users signed in to a Google account that matches the email they used to set up their Metabase account will be able to sign in with just a click.
|
||||
|
||||
Note that Metabase accounts created with Google Sign-In do not have passwords and must use Google to sign in to Metabase.
|
||||
Note that Metabase accounts _created_ with Google Sign-In will not have passwords; they must use Google to sign in to Metabase.
|
||||
|
||||
### Multiple domains for Google Sign-in
|
||||
|
||||
{% include plans-blockquote.html feature="Multiple domains for Google Sign-in" %}
|
||||
|
||||
If you're on a [pro](https://www.metabase.com/product/pro) or [Enterprise](https://www.metabase.com/product/enterprise) plan, you can specify multiple domains in the **Domain** field, separated by a comma. For example, `mycompany.com,example.com.br,otherdomain.co.uk`.
|
||||
|
||||
## Required LDAP attributes
|
||||
|
||||
|
||||
@@ -43,6 +43,8 @@ You can also sync user attributes from your identity provider [via SSO](./start.
|
||||
|
||||
User attributes are required for [data sandbox](../permissions/data-sandboxes.md) permissions.
|
||||
|
||||
You can also employ user attributes to specify what database role Metabase should use when that person queries a database. Check out [impersonation access](../permissions/data.md#impersonation-access).
|
||||
|
||||
## Deactivating an account
|
||||
|
||||
To deactivate someone's account, click on the three dots icon on the right of a person’s row and select **Deactivate** from the dropdown. Deactivating an account will mark it as inactive and prevent the user from logging in - but it _won’t_ delete that person's saved questions or dashboards.
|
||||
|
||||
@@ -35,7 +35,10 @@ For more information, check out our guide for [authenticating with SAML](./authe
|
||||
7. Configure the service provider (Metabase) from **Configure** > **Realm Settings**.
|
||||
- From **Endpoints**, select “SAML 2.0 Identity Provider Metadata”.
|
||||
- An XML file will open in a new tab.
|
||||
8. From the XML file, note the following:
|
||||
8. Configure the Single Logout service (if you intend to use Single Logout)
|
||||
1. in **Clients** > **Valid post logout redirect URIs** put your server's uri (this usually matches **Valid redirect URIs**)
|
||||
2. in **Clients** > **Advanced** > **Logout Service POST Binding URL** put your server URI appended with `/auth/sso/handle_slo`
|
||||
9. From the XML file, note the following:
|
||||
1. The URL that appears right after the following string:
|
||||
```
|
||||
md:SingleSignOnServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location=
|
||||
|
||||
@@ -10,7 +10,7 @@ title: SAML with Okta
|
||||
|
||||
| Metabase SAML | Okta SAML |
|
||||
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
||||
| URL the IdP should redirect back to | Single sign-on URL. This is your Metabase [Site URL][site-url] -- it should start with `https://` and end with `/auth/sso/`. |
|
||||
| URL the IdP should redirect back to | Single sign-on URL. This is your Metabase [Site URL][site-url] -- it should start with `https://` and end with `/auth/sso`. |
|
||||
| SAML Application Name | Audience URI (SP Entity ID) |
|
||||
|
||||
### Setting attribute statements
|
||||
|
||||