Making the URL optional for application creation/update in OpenAPI spec, removing unused parameter and fixing getRedisOptions function to work with fully qualified URLs.

This commit is contained in:
mike12345567 2022-03-10 15:53:23 +00:00
parent 06db377b31
commit 30651e81d5
6 changed files with 20 additions and 24 deletions

View File

@ -22,12 +22,25 @@ exports.Databases = {
exports.SEPARATOR = SEPARATOR
exports.getRedisOptions = (clustered = false) => {
const [host, port, ...rest] = REDIS_URL.split(":")
let password = REDIS_PASSWORD
let url = REDIS_URL.split("//")
// get rid of the protocol
url = url.length > 1 ? url[1] : url[0]
// check for a password etc
url = url.split("@")
if (url.length > 1) {
// get the password
password = url[0].split(":")[1]
url = url[1]
} else {
url = url[0]
}
const [host, port] = url.split(":")
let redisProtocolUrl
// fully qualified redis URL
if (rest.length && /rediss?/.test(host)) {
if (/rediss?/.test(REDIS_URL)) {
redisProtocolUrl = REDIS_URL
}
@ -37,13 +50,13 @@ exports.getRedisOptions = (clustered = false) => {
if (clustered) {
opts.redisOptions = {}
opts.redisOptions.tls = {}
opts.redisOptions.password = REDIS_PASSWORD
opts.redisOptions.password = password
opts.slotsRefreshTimeout = SLOT_REFRESH_MS
opts.dnsLookup = (address, callback) => callback(null, address)
} else {
opts.host = host
opts.port = port
opts.password = REDIS_PASSWORD
opts.password = password
}
return { opts, host, port, redisProtocolUrl }
}

View File

@ -437,8 +437,7 @@
}
},
"required": [
"name",
"url"
"name"
]
},
"applicationOutput": {
@ -1803,11 +1802,6 @@
"tags": [
"applications"
],
"parameters": [
{
"$ref": "#/components/parameters/appId"
}
],
"requestBody": {
"required": true,
"content": {

View File

@ -309,7 +309,6 @@ components:
type: string
required:
- name
- url
applicationOutput:
type: object
properties:
@ -1346,8 +1345,6 @@ paths:
applications.
tags:
- applications
parameters:
- $ref: "#/components/parameters/appId"
requestBody:
required: true
content:

View File

@ -27,7 +27,7 @@ const base = {
},
}
const applicationSchema = object(base, { required: ["name", "url"] })
const applicationSchema = object(base, { required: ["name"] })
const applicationOutputSchema = object(
{

View File

@ -121,8 +121,6 @@ read.push(new Endpoint("get", "/applications/:appId", controller.read))
* description: Based on application properties (currently only name) search for applications.
* tags:
* - applications
* parameters:
* - $ref: '#/components/parameters/appId'
* requestBody:
* required: true
* content:

View File

@ -85,12 +85,6 @@ export interface paths {
"/applications/search": {
/** Based on application properties (currently only name) search for applications. */
post: {
parameters: {
header: {
/** The ID of the app which this request is targeting. */
"x-budibase-app-id": components["parameters"]["appId"];
};
};
responses: {
/** Returns the applications that were found based on the search parameters. */
200: {
@ -554,7 +548,7 @@ export interface components {
/** @description The name of the app. */
name: string;
/** @description The URL by which the app is accessed, this must be URL encoded. */
url: string;
url?: string;
};
applicationOutput: {
data: {