Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions lib/catalog.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const status = conn => {

const reload = (conn, provider) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'catalog', 'reload'), {
method: 'POST',
body: JSON.stringify({ provider }),
Expand All @@ -20,7 +20,7 @@ const reload = (conn, provider) => {

const addCredential = (conn, credentials, label) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');

const body = { ...credentials, label };

Expand All @@ -33,7 +33,7 @@ const addCredential = (conn, credentials, label) => {

const listCredentials = conn => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'catalog', 'credentials'), {
method: 'GET',
headers,
Expand All @@ -42,7 +42,7 @@ const listCredentials = conn => {

const removeCredential = (conn, accessKey) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'catalog', 'credentials', accessKey), {
method: 'DELETE',
headers,
Expand All @@ -51,7 +51,7 @@ const removeCredential = (conn, accessKey) => {

const runJob = (conn, jobname) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'catalog', 'jobs', 'run'), {
method: 'POST',
body: JSON.stringify({ jobname }),
Expand All @@ -61,7 +61,7 @@ const runJob = (conn, jobname) => {

const testConnection = (conn, connectionOptions) => {
const headers = conn.headers();
headers.set('Content-Type', 'text/turtle');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this change back to text/turtle when we eventually revert or is this call supposed to be json always?

Copy link
Copy Markdown
Member Author

@SpiralP SpiralP Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh yea, fixed a bug here

below there is a:

// connectionOptions is a JSON object made up of properties of metadata provider parameters and their values in Turtle syntax
body: JSON.stringify(connectionOptions),

and it's used like this in another app:

  testConnection: createStardogAsyncThunk<{
    connectionOptions: Record<string, string>;
  }>('providers/testConnection', ({ connection, connectionOptions }) =>
    stardogCatalog.testConnection(connection, connectionOptions)
  ),

so it seems to be a json object of Record<string, string> (i think turtle was a mistake)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i should also mention i did test this, and both application/json and text/turtle give the same result with the same input

reading stardog code, it seems to do JSON.parse(...).getAsJsonObject() first as well

headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(
conn.request('admin', 'catalog', 'providers', 'test_connection_properties'),
{
Expand Down
17 changes: 10 additions & 7 deletions lib/dataSources.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ const listInfo = conn => {

const info = (conn, name) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'data_sources', name, 'info'), {
headers,
}).then(httpBody);
};

const add = (conn, name, options) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'data_sources'), {
method: 'POST',
body: JSON.stringify({
Expand All @@ -38,7 +38,7 @@ const add = (conn, name, options) => {

const update = (conn, name, options, requestOptions = {}) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');

const body = { name, options };
if (requestOptions.force) {
Expand Down Expand Up @@ -114,7 +114,7 @@ const getMetadata = (conn, name, opts = {}) => {
const getTableMetadata = (conn, dsName, opts) => {
const headers = conn.headers();
headers.set('Accept', opts.accept || 'text/turtle');
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
const body = {
table_name: opts.table_name,
table_type: opts.table_type,
Expand Down Expand Up @@ -156,7 +156,10 @@ const updateMetadata = (conn, name, metadata, opts = {}) => {
const query = (conn, name, dataSourceQuery) => {
const headers = conn.headers();
const isString = typeof dataSourceQuery === 'string';
headers.set('Content-Type', isString ? 'text/plain' : 'application/json');
headers.set(
'Content-Type',
isString ? 'text/plain' : 'application/json; charset=utf-8'
);
headers.set('Accept', 'application/json');
return fetch(conn.request('admin', 'data_sources', name, 'query'), {
method: 'POST',
Expand All @@ -167,7 +170,7 @@ const query = (conn, name, dataSourceQuery) => {

const refreshCounts = (conn, name, tableName = '') => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
headers.set('Accept', 'application/json');

const body = {};
Expand All @@ -184,7 +187,7 @@ const refreshCounts = (conn, name, tableName = '') => {

const refreshMetadata = (conn, name, tableName = '') => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
headers.set('Accept', 'application/json');

const body = {};
Expand Down
4 changes: 2 additions & 2 deletions lib/db/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { httpBody } = require('../response-transforms');
const FLATTENED_DB_OPTIONS = flat.flatten(DB_OPTIONS);

const dispatchDBOptions = (conn, config, body) => {
config.headers.set('Content-Type', 'application/json');
config.headers.set('Content-Type', 'application/json; charset=utf-8');

const requestOptions = {
method: config.method,
Expand Down Expand Up @@ -62,7 +62,7 @@ const set = (conn, database, databaseOptions, params) => {

const getAvailable = conn => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'config_properties'), {
method: 'GET',
headers,
Expand Down
2 changes: 1 addition & 1 deletion lib/db/reasoning.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { httpBody } = require('../response-transforms');

const jsonify = res => {
res.headers.set('Content-Type', 'application/json');
res.headers.set('Content-Type', 'application/json; charset=utf-8');
return res;
};

Expand Down
2 changes: 1 addition & 1 deletion lib/query/graphql.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const execute = (
additionalHandlers = {}
) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request(database, `graphql${encodeQueryString(params)}`), {
method: 'POST',
body: JSON.stringify({ query, variables }),
Expand Down
31 changes: 19 additions & 12 deletions lib/query/stored.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
const { httpBody } = require('../response-transforms');

const CONTENT_TYPE_JSON = 'application/json';

const getBody = (conn, storedQuery, options) => {
if (!options.contentType || options.contentType === CONTENT_TYPE_JSON) {
if (
!options.contentType ||
options.contentType.startsWith('application/json')
) {
const body = { ...storedQuery };
body.creator = conn.username;
body.shared = typeof body.shared === 'boolean' ? body.shared : false;
Expand All @@ -22,8 +23,11 @@ const getBody = (conn, storedQuery, options) => {
*/
const create = (conn, storedQuery, options = {}) => {
const headers = conn.headers();
headers.set('Content-Type', options.contentType || CONTENT_TYPE_JSON);
headers.set('Accept', options.accept || CONTENT_TYPE_JSON);
headers.set(
'Content-Type',
options.contentType || 'application/json; charset=utf-8'
);
headers.set('Accept', options.accept || 'application/json');
return fetch(conn.request('admin', 'queries', 'stored'), {
headers,
method: 'POST',
Expand All @@ -33,15 +37,15 @@ const create = (conn, storedQuery, options = {}) => {

const list = (conn, options = {}) => {
const headers = conn.headers();
headers.set('Accept', options.accept || CONTENT_TYPE_JSON);
headers.set('Accept', options.accept || 'application/json');
return fetch(conn.request('admin', 'queries', 'stored'), {
headers,
}).then(httpBody);
};

const deleteStoredQuery = (conn, storedQuery) => {
const headers = conn.headers();
headers.set('Accept', CONTENT_TYPE_JSON);
headers.set('Accept', 'application/json');
return fetch(conn.request('admin', 'queries', 'stored', storedQuery), {
headers,
method: 'DELETE',
Expand All @@ -50,8 +54,8 @@ const deleteStoredQuery = (conn, storedQuery) => {

const renameStoredQuery = (conn, name, newName) => {
const headers = conn.headers();
headers.set('Content-Type', CONTENT_TYPE_JSON);
headers.set('Accept', CONTENT_TYPE_JSON);
headers.set('Content-Type', 'application/json; charset=utf-8');
headers.set('Accept', 'application/json');

const body = { name: newName };
return fetch(conn.request('admin', 'queries', 'stored', name), {
Expand All @@ -63,7 +67,7 @@ const renameStoredQuery = (conn, name, newName) => {

const getStoredQuery = (conn, name, options = {}) => {
const headers = conn.headers();
headers.set('Accept', options.accept || CONTENT_TYPE_JSON);
headers.set('Accept', options.accept || 'application/json');
return fetch(conn.request('admin', 'queries', 'stored', name), {
headers,
}).then(httpBody);
Expand All @@ -88,8 +92,11 @@ const updateStoredQuery = (
return replace(conn, storedQuery);
}
const headers = conn.headers();
headers.set('Content-Type', options.contentType || CONTENT_TYPE_JSON);
headers.set('Accept', options.accept || CONTENT_TYPE_JSON);
headers.set(
'Content-Type',
options.contentType || 'application/json; charset=utf-8'
);
headers.set('Accept', options.accept || 'application/json');
return fetch(conn.request('admin', 'queries', 'stored'), {
headers,
method: 'PUT',
Expand Down
10 changes: 5 additions & 5 deletions lib/user/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const get = (conn, username, params) => {
const create = (conn, user, params) => {
const headers = conn.headers();
headers.set('Accept', 'application/json');
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');

const body = {
username: user.username,
Expand Down Expand Up @@ -82,7 +82,7 @@ const enable = (conn, username, enabled, params) => {

const setRoles = (conn, username, roles, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'users', username, 'roles'), {
method: 'PUT',
headers,
Expand All @@ -92,7 +92,7 @@ const setRoles = (conn, username, roles, params) => {

const assignRole = (conn, username, role, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'users', username, 'roles'), {
method: 'POST',
headers,
Expand All @@ -112,7 +112,7 @@ const listRoles = (conn, username, params) => {
// actions: CREATE, DELETE, READ, WRITE, GRANT, REVOKE, EXECUTE
const assignPermission = (conn, username, permission, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
const body = {
action: permission.action,
resource_type: permission.resourceType,
Expand All @@ -127,7 +127,7 @@ const assignPermission = (conn, username, permission, params) => {

const deletePermission = (conn, username, permission, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
const body = {
action: permission.action,
resource_type: permission.resourceType,
Expand Down
6 changes: 3 additions & 3 deletions lib/user/role.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const { httpBody, httpMessage } = require('../response-transforms');

const create = (conn, role, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'roles'), {
method: 'POST',
headers,
Expand Down Expand Up @@ -45,7 +45,7 @@ const usersWithRole = (conn, role, params) => {
// actions: CREATE, DELETE, READ, WRITE, GRANT, REVOKE, EXECUTE
const assignPermission = (conn, role, permission, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
const body = {
action: permission.action,
resource_type: permission.resourceType,
Expand All @@ -60,7 +60,7 @@ const assignPermission = (conn, role, permission, params) => {

const deletePermission = (conn, role, permission, params) => {
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
const body = {
action: permission.action,
resource_type: permission.resourceType,
Expand Down
4 changes: 2 additions & 2 deletions lib/virtualGraphs.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const listInfo = conn => {
const add = (conn, name, mappings, options, meta = {}) => {
const { db, dataSource } = meta;
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'virtual_graphs'), {
method: 'POST',
body: JSON.stringify({
Expand All @@ -34,7 +34,7 @@ const add = (conn, name, mappings, options, meta = {}) => {
const update = (conn, name, mappings, options, meta = {}) => {
const { db, dataSource } = meta;
const headers = conn.headers();
headers.set('Content-Type', 'application/json');
headers.set('Content-Type', 'application/json; charset=utf-8');
return fetch(conn.request('admin', 'virtual_graphs', name), {
method: 'PUT',
body: JSON.stringify({
Expand Down