Give a Ravi Pages site (every route of its host) read, and optionally write, access to a view
curl --request POST \
--url http://localhost:3000/api/v1/bases/views/share \
--header 'Content-Type: application/json' \
--data '
{
"base": "<string>",
"view": "<string>",
"archive": true,
"console": "<string>",
"create": true,
"execute": true,
"project": "<string>",
"site": "<string>",
"write": "<string>",
"writeOnly": true
}
'import requests
url = "http://localhost:3000/api/v1/bases/views/share"
payload = {
"base": "<string>",
"view": "<string>",
"archive": True,
"console": "<string>",
"create": True,
"execute": True,
"project": "<string>",
"site": "<string>",
"write": "<string>",
"writeOnly": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
base: '<string>',
view: '<string>',
archive: true,
console: '<string>',
create: true,
execute: true,
project: '<string>',
site: '<string>',
write: '<string>',
writeOnly: true
})
};
fetch('http://localhost:3000/api/v1/bases/views/share', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/bases/views/share",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base' => '<string>',
'view' => '<string>',
'archive' => true,
'console' => '<string>',
'create' => true,
'execute' => true,
'project' => '<string>',
'site' => '<string>',
'write' => '<string>',
'writeOnly' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/v1/bases/views/share"
payload := strings.NewReader("{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/bases/views/share")
.header("Content-Type", "application/json")
.body("{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/bases/views/share")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"baseRef": "<string>",
"changed": true,
"consoleUrl": "<string>",
"disclosure": [
"<string>"
],
"grants": {
"archive": true,
"create": true,
"read": true,
"writeColumns": [
"<string>"
]
},
"projectRef": "<string>",
"site": {
"hostname": "<string>",
"id": "<string>",
"isDefault": true,
"slug": "<string>"
},
"success": true,
"view": {
"access": {},
"baseId": "<string>",
"capabilities": {
"aggregateOnly": true,
"archive": true,
"create": true,
"manage": true,
"read": true,
"writeColumns": [
"<string>"
],
"approve": [
"<string>"
]
},
"columns": [
"<string>"
],
"createdAt": "<string>",
"description": "<string>",
"id": "<string>",
"invalidReason": "<string>",
"layout": {},
"name": "<string>",
"position": 123,
"query": {
"filter": "<string>",
"sort": [
{
"dir": "<string>",
"prop": "<string>"
}
]
},
"status": "<string>",
"updatedAt": "<string>",
"valid": true,
"version": 123
}
}bases
Give a Ravi Pages site (every route of its host) read, and optionally write, access to a view
POST
/
api
/
v1
/
bases
/
views
/
share
Give a Ravi Pages site (every route of its host) read, and optionally write, access to a view
curl --request POST \
--url http://localhost:3000/api/v1/bases/views/share \
--header 'Content-Type: application/json' \
--data '
{
"base": "<string>",
"view": "<string>",
"archive": true,
"console": "<string>",
"create": true,
"execute": true,
"project": "<string>",
"site": "<string>",
"write": "<string>",
"writeOnly": true
}
'import requests
url = "http://localhost:3000/api/v1/bases/views/share"
payload = {
"base": "<string>",
"view": "<string>",
"archive": True,
"console": "<string>",
"create": True,
"execute": True,
"project": "<string>",
"site": "<string>",
"write": "<string>",
"writeOnly": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
base: '<string>',
view: '<string>',
archive: true,
console: '<string>',
create: true,
execute: true,
project: '<string>',
site: '<string>',
write: '<string>',
writeOnly: true
})
};
fetch('http://localhost:3000/api/v1/bases/views/share', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/bases/views/share",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base' => '<string>',
'view' => '<string>',
'archive' => true,
'console' => '<string>',
'create' => true,
'execute' => true,
'project' => '<string>',
'site' => '<string>',
'write' => '<string>',
'writeOnly' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/v1/bases/views/share"
payload := strings.NewReader("{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/bases/views/share")
.header("Content-Type", "application/json")
.body("{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/bases/views/share")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"base\": \"<string>\",\n \"view\": \"<string>\",\n \"archive\": true,\n \"console\": \"<string>\",\n \"create\": true,\n \"execute\": true,\n \"project\": \"<string>\",\n \"site\": \"<string>\",\n \"write\": \"<string>\",\n \"writeOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"baseRef": "<string>",
"changed": true,
"consoleUrl": "<string>",
"disclosure": [
"<string>"
],
"grants": {
"archive": true,
"create": true,
"read": true,
"writeColumns": [
"<string>"
]
},
"projectRef": "<string>",
"site": {
"hostname": "<string>",
"id": "<string>",
"isDefault": true,
"slug": "<string>"
},
"success": true,
"view": {
"access": {},
"baseId": "<string>",
"capabilities": {
"aggregateOnly": true,
"archive": true,
"create": true,
"manage": true,
"read": true,
"writeColumns": [
"<string>"
],
"approve": [
"<string>"
]
},
"columns": [
"<string>"
],
"createdAt": "<string>",
"description": "<string>",
"id": "<string>",
"invalidReason": "<string>",
"layout": {},
"name": "<string>",
"position": 123,
"query": {
"filter": "<string>",
"sort": [
{
"dir": "<string>",
"prop": "<string>"
}
]
},
"status": "<string>",
"updatedAt": "<string>",
"valid": true,
"version": 123
}
}Body
application/json
Base id or slug
View id
Also let the site archive rows through the view
Console base URL
Also let the site create rows through the view
Actually widen the view's access; default is a dry-run that only shows the plan (exit 3)
Console project id or slug; overrides the saved Console scope
Pages site (host) of this project: slug, id or hostname
Also let the site write these columns (comma-separated; shared by every write principal)
Grant only the write side, without reading rows (a form view with access.read: [])
Response
Success — body conforms to the @Returns schema.