mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 14:01:45 +02:00
* feat: added feature flag package for decrypting and refreshing the feature flags value * feat: added feature flagging route for route handlers * feat: added feature flag worker for managing and distributing feature flags * feat: implemented feature flag api implementation inside ff handler * feat: added exponential retry interval inside feature flagging * fix: route pattern of feature flag endpoint from monitor * feat: created endpoint to activate workspace from monitor * feat: made changes to accomodate db and activate endpoint * dev: update multi tenant environment settings * dev: workspace license activation flow * dev: update license activate endpoint * dev: update workspace license activate endpoint * feat: added feature flag user sync logic * feat: added constants and sync logic with private key inside * feat: added port as env variable * feat: added modification for removing license key in healthcheck * feat: example env pushed * fix: update monitor endpoints and license activation function * dev: initiate free workspace only for self hosted instances * dev: self hosting license endpoint updates * dev: remove monitor db * dev: update handlers * dev: self hosted license subscription web * dev: removed computed in self hosted subscription * fix: prime server url and delete old license while creating new license in sqlite * chore: subscription activation alert after successfull activation. * dev: update feature flag endpoints * fix: handled several cases of feature flags * fix: linting errors * dev: update monitor to handle workspace activation * dev: update decryption algorithm * feat: separated activation payload with the sync payload * dev: update feature flags endpoint * dev: change type for workspace sync * feat: added isActive flag for user activation * feat: removed creation of free users in monitor * feat: added method for workspace product * dev: add user email in types * feat: added method for workspace product * fix: uer license feature flag fetch * fix: handler fixed for feature key * chore: self managed license activation * chore: update validation license flow. * chore: license activation success. * dev: resync workspace license on activation * chore: plane one success modal. * feat: added constructs to inject private key build time * feat: updated the docker file with private key build argument * feat: added consumption od DEFAULT_PRIVATE_KEY when building monitor * dev: update private key --------- Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
78 lines
2.0 KiB
Go
78 lines
2.0 KiB
Go
/*
|
|
Copyright © 2024 plane.so engineering@plane.so
|
|
*/
|
|
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/makeplane/plane-ee/monitor/lib/logger"
|
|
"github.com/makeplane/plane-ee/monitor/pkg/constants"
|
|
"github.com/makeplane/plane-ee/monitor/pkg/constants/descriptors"
|
|
error_msgs "github.com/makeplane/plane-ee/monitor/pkg/constants/errors"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var CmdLogger = logger.NewHandler(nil)
|
|
var MACHINE_SIGNATURE = ""
|
|
var APP_DOMAIN = ""
|
|
var APP_VERSION = ""
|
|
var INSTANCE_ID = ""
|
|
var PORT = "8080"
|
|
var HOST = "https://prime.plane.so"
|
|
var PRIVATE_KEY = ``
|
|
|
|
// rootCmd represents the base command when called without any subcommands
|
|
var rootCmd = &cobra.Command{
|
|
Use: descriptors.PRIME_MONITOR_USAGE,
|
|
Short: descriptors.PRIME_MONITOR_USAGE_DESC,
|
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
|
if host := os.Getenv(constants.PRIME_HOST); host != "" {
|
|
HOST = host
|
|
}
|
|
|
|
if appDomain := os.Getenv(constants.APP_DOMAIN); appDomain == "" {
|
|
return fmt.Errorf(error_msgs.APP_DOMAIN_ABSENT)
|
|
} else {
|
|
APP_DOMAIN = appDomain
|
|
}
|
|
|
|
if appVersion := os.Getenv(constants.APP_VERSION); appVersion == "" {
|
|
return fmt.Errorf(error_msgs.APP_VERSION_ABSENT)
|
|
} else {
|
|
APP_VERSION = appVersion
|
|
}
|
|
|
|
if port := os.Getenv(constants.PORT); port != "" {
|
|
PORT = port
|
|
}
|
|
|
|
if instanceId := os.Getenv(constants.INSTANCE_ID); instanceId == "" {
|
|
return fmt.Errorf(error_msgs.INSTANCE_ID_ABSENT)
|
|
} else {
|
|
INSTANCE_ID = instanceId
|
|
}
|
|
|
|
if machineSignature := os.Getenv(constants.MACHINE_SIGNATURE); machineSignature == "" {
|
|
return fmt.Errorf(error_msgs.MACHINE_SIG_ABSENT)
|
|
} else {
|
|
MACHINE_SIGNATURE = machineSignature
|
|
}
|
|
return nil
|
|
},
|
|
}
|
|
|
|
// Execute adds all child commands to the root command and sets flags appropriately.
|
|
// This is called by main.main(). It only needs to happen once to the rootCmd.
|
|
func Execute(privateKey string) {
|
|
err := rootCmd.Execute()
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
|
|
}
|