Merge branch 'chore/aws-v2-to-v3' of github.com:Budibase/budibase into chore/aws-v2-to-v3

This commit is contained in:
mike12345567 2025-01-06 17:54:23 +00:00
commit 28c6187d5e
8 changed files with 66 additions and 66 deletions

View File

@ -19,5 +19,8 @@ jobs:
cache: yarn
- run: yarn --frozen-lockfile
- name: Install OpenAPI pkg
run: yarn global add openapi
- name: update specs
run: cd packages/server && yarn specs && openapi specs/openapi.yaml --key=${{ secrets.README_API_KEY }} --id=6728a74f5918b50036c61841

View File

@ -53,17 +53,24 @@ export class BudiStore<T> {
}
}
export class DerivedBudiStore<T, DerivedT extends T> extends BudiStore<T> {
// This deliberately does not extend a BudiStore as doing so imposes a requirement that
// DerivedT must extend T, which is not desirable, due to the type of the subscribe property.
export class DerivedBudiStore<T, DerivedT> {
store: BudiStore<T>
derivedStore: Readable<DerivedT>
subscribe: Readable<DerivedT>["subscribe"]
update: Writable<T>["update"]
set: Writable<T>["set"]
constructor(
init: T,
makeDerivedStore: (store: Writable<T>) => Readable<DerivedT>,
opts?: BudiStoreOpts
) {
super(init, opts)
this.store = new BudiStore(init, opts)
this.derivedStore = makeDerivedStore(this.store)
this.subscribe = this.derivedStore.subscribe
this.update = this.store.update
this.set = this.store.set
}
}

View File

@ -1,54 +0,0 @@
import { writable } from "svelte/store"
import { API } from "@/api"
import { licensing } from "./licensing"
import { ConfigType } from "@budibase/types"
export const createFeatureStore = () => {
const internalStore = writable({
scim: {
isFeatureFlagEnabled: false,
isConfigFlagEnabled: false,
},
})
const store = writable({
isScimEnabled: false,
})
internalStore.subscribe(s => {
store.update(state => ({
...state,
isScimEnabled: s.scim.isFeatureFlagEnabled && s.scim.isConfigFlagEnabled,
}))
})
licensing.subscribe(v => {
internalStore.update(state => ({
...state,
scim: {
...state.scim,
isFeatureFlagEnabled: v.scimEnabled,
},
}))
})
const actions = {
init: async () => {
const scimConfig = await API.getConfig(ConfigType.SCIM)
internalStore.update(state => ({
...state,
scim: {
...state.scim,
isConfigFlagEnabled: scimConfig?.config?.enabled,
},
}))
},
}
return {
subscribe: store.subscribe,
...actions,
}
}
export const features = createFeatureStore()

View File

@ -0,0 +1,35 @@
import { derived, Writable } from "svelte/store"
import { API } from "@/api"
import { licensing } from "./licensing"
import { ConfigType, isConfig, isSCIMConfig } from "@budibase/types"
import { DerivedBudiStore } from "../BudiStore"
interface FeatureState {
scimConfigEnabled: Boolean
}
interface DerivedFeatureState {
isScimEnabled: Boolean
}
class FeatureStore extends DerivedBudiStore<FeatureState, DerivedFeatureState> {
constructor() {
const makeDerivedStore = (store: Writable<FeatureState>) => {
return derived([store, licensing], ([$state, $licensing]) => ({
isScimEnabled: $state.scimConfigEnabled && $licensing.scimEnabled,
}))
}
super({ scimConfigEnabled: false }, makeDerivedStore)
}
async init() {
const config = await API.getConfig(ConfigType.SCIM)
this.update(state => ({
...state,
scimConfigEnabled:
isConfig(config) && isSCIMConfig(config) && config.config.enabled,
}))
}
}
export const features = new FeatureStore()

View File

@ -16,6 +16,7 @@
},
"dependencies": {
"@budibase/backend-core": "*",
"@budibase/pouchdb-replication-stream": "1.2.11",
"@budibase/string-templates": "*",
"@budibase/types": "*",
"chalk": "4.1.0",
@ -28,9 +29,9 @@
"inquirer": "8.0.0",
"lookpath": "1.1.0",
"node-fetch": "2.6.7",
"open": "8.4.2",
"posthog-node": "4.0.1",
"pouchdb": "7.3.0",
"@budibase/pouchdb-replication-stream": "1.2.11",
"randomstring": "1.1.5",
"tar": "6.2.1",
"yaml": "^2.1.1"

View File

@ -3,6 +3,8 @@ import { info, success } from "../utils"
import * as makeFiles from "./makeFiles"
import compose from "docker-compose"
import fs from "fs"
import { confirmation } from "../questions"
const open = require("open")
export async function start() {
await checkDockerConfigured()
@ -22,6 +24,9 @@ export async function start() {
// need to log as it makes it more clear
await compose.upAll({ cwd: "./", log: true })
})
if (await confirmation(`Do you wish to open http://localhost:${port} ?`)) {
await open(`http://localhost:${port}`)
}
console.log(
success(
`Services started, please go to http://localhost:${port} for next steps.`

View File

@ -127,6 +127,9 @@ export interface AIInnerConfig {
export interface AIConfig extends Config<AIInnerConfig> {}
export const isConfig = (config: Object): config is Config =>
"type" in config && "config" in config
export const isSettingsConfig = (config: Config): config is SettingsConfig =>
config.type === ConfigType.SETTINGS

View File

@ -16664,15 +16664,7 @@ only@~0.0.2:
resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==
open@^7.3.1:
version "7.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
dependencies:
is-docker "^2.0.0"
is-wsl "^2.1.1"
open@^8.0.0, open@^8.4.0, open@~8.4.0:
open@8.4.2, open@^8.0.0, open@^8.4.0, open@~8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
@ -16681,6 +16673,14 @@ open@^8.0.0, open@^8.4.0, open@~8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
open@^7.3.1:
version "7.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
dependencies:
is-docker "^2.0.0"
is-wsl "^2.1.1"
openai@4.59.0:
version "4.59.0"
resolved "https://registry.yarnpkg.com/openai/-/openai-4.59.0.tgz#3961d11a9afb5920e1bd475948a87969e244fc08"