diff --git a/config.yaml.defaults b/config.yaml.defaults index 8d5b00d3de..edd30757de 100644 --- a/config.yaml.defaults +++ b/config.yaml.defaults @@ -1,334 +1,334 @@ -app: - title: SkyPortal - logos: # Logos to place in the top-left of the header/login page (zero or more) - - src: /static/images/skyportal_logo_dark.png - alt_text: Skyportal logo - login_message: | - For more information about the project, see - - https://github.com/skyportal/skyportal - - - secret_key: abc01234 # This secret key can be any random string of - # characters. - # - # You should re-generate this for your application - # using: - # - # base64.b64encode(os.urandom(50)).decode('ascii') - factory: skyportal.app_server.make_app - - # this endpoint does not actually do anything -- it is just for testing - sedm_endpoint: http://pharos.caltech.edu/add_fritz - - lt_host: 161.72.57.3 - lt_port: 8080 - - # See https://stackoverflow.com/a/35604855 for syntax - # These are Javascript component routes - routes: - - path: "/" - component: HomePage - exact: True - - path: "/source/:id" - component: Source - - path: "/favorites" - component: FavoritesPage - - path: "/groups" - component: Groups - - path: "/group/:id" - component: Group - - path: "/profile" - component: Profile - - path: "/candidates" - component: CandidateList - - path: "/sources" - component: SourceList - - path: "/user/:id" - component: UserInfo - - path: "/upload_photometry/:id" - component: UploadPhotometry - - path: "/about" - component: About - - path: "/run/:id" - component: RunSummary - - path: "/manage_data/:id" - component: ManageDataForm - - path: "/filter/:fid" - component: Filter - - path: "/runs" - component: ObservingRunPage - - path: "/group_sources/:id" - component: GroupSources - - path: "/user_management" - component: UserManagement - - path: "/upload_spectrum/:id" - component: UploadSpectrum - - path: "/observability/:id" - component: Observability - - path: "/source/:id/finder" - component: FindingChart - - path: "/source/:id/periodogram" - component: Periodogram - - path: "/db_stats" - component: DBStats - - - sidebar: - # See https://material-ui.com/components/material-icons/ - - - name: Dashboard - icon: Home - url: / - - - name: Sources - icon: Storage - url: /sources - - - name: Candidates - icon: Search - url: /candidates - - - name: Favorites - icon: Star - url: /favorites - - - name: Groups - icon: GroupWork - url: /groups - - - name: Observing Runs - icon: LocalCafe - url: /runs - - - name: About - icon: Info - url: /about - - # See https://github.com/STRML/react-grid-layout for more on the grid package - homepage_grid: - # This section describes the grid on which Home Page widgets are laid out. + app: + title: Fritz + logos: # Logos to place in the top-left of the header bar (zero or more) + - src: /static/images/GROWTH_logo.png + alt_text: GROWTH logo + - src: /static/images/skyportal_logo_dark.png + alt_text: Skyportal logo + + # This secret key can be any random string of + # characters. # - # The breakpoints describe screen sizes at which a different set of widget - # layouts should be used. Note that these breakpoints describe minimum width - # values, unlike the maximum width bounds used by Material UI breakpoints. - # For example, a breakpoint of "sm: 650" will match windows with width 650px - # or greater, until the next highest breakpoint is hit (probably a "md"). - # This is different from Material UI, where a breakpoint of 650 would match - # window widths that are at most 650px. + # You should re-generate this for your application + # using: # - # The cols describe the number of evenly spaced columns that make up the - # grid at a given breakpoint. For example, on extra-large screens (greater - # than ${breakpoints.xlg} pixels), the grid will use ${cols.xlg} columns of - # equal width to describe sizes of widgets based on the layouts provided. + # base64.b64encode(os.urandom(50)).decode('ascii') + secret_key: abc01234 + factory: skyportal.app_server_fritz.make_app_fritz + + # this endpoint does not actually do anything -- it is just for testing + sedm_endpoint: http://pharos.caltech.edu/add_fritz + + # See https://stackoverflow.com/a/35604855 for syntax + # These are Javascript component routes + routes: + - path: "/" + component: HomePage + exact: True + - path: "/source/:id" + component: Source + - path: "/favorites" + component: FavoritesPage + - path: "/groups" + component: Groups + - path: "/group/:id" + component: Group + - path: "/profile" + component: Profile + - path: "/candidates" + component: CandidateList + - path: "/sources" + component: SourceList + - path: "/user/:id" + component: UserInfo + - path: "/upload_photometry/:id" + component: UploadPhotometry + - path: "/about" + component: About + - path: "/manage_data/:id" + component: ManageDataForm + - path: "/filter/:fid" + component: Filter + - path: "/runs" + component: ObservingRunPage + - path: "/run/:id" + component: RunSummary + - path: "/group_sources/:id" + component: GroupSources + - path: "/user_management" + component: UserManagement + - path: "/alerts" + component: Alerts + - path: "/alerts/ztf/:id" + component: ZTFAlert + - path: "/upload_spectrum/:id" + component: UploadSpectrum + - path: "/source/:id/finder" + component: FindingChart + - path: "/observability/:id" + component: Observability + - path: "/source/:id/periodogram" + component: Periodogram + - path: "/db_stats" + component: DBStats + + kowalski: + protocol: "http" + host: "kowalski_api_1" + port: 4000 + token: + + sidebar: + # See https://material-ui.com/components/material-icons/ + + - name: Dashboard + icon: Home + url: / + + - name: Sources + icon: Storage + url: /sources + + - name: Candidates + icon: Search + url: /candidates + + - name: Favorites + icon: Star + url: /favorites + + - name: Alerts + icon: Explore + url: /alerts + + - name: Groups + icon: GroupWork + url: /groups + + - name: Observing Runs + icon: LocalCafe + url: /runs + + - name: About + icon: Info + url: /about + + homepage_grid: + # This section describes the grid on which Home Page widgets are laid out. + # + # The breakpoints describe screen sizes at which a different set of widget + # layouts should be used. Note that these breakpoints describe minimum width + # values, unlike the maximum width bounds used by Material UI breakpoints. + # For example, a breakpoint of "sm: 650" will match windows with width 650px + # or greater, until the next highest breakpoint is hit (probably a "md"). + # This is different from Material UI, where a breakpoint of 650 would match + # window widths that are at most 650px. + # + # The cols describe the number of evenly spaced columns that make up the + # grid at a given breakpoint. For example, on extra-large screens (greater + # than ${breakpoints.xlg} pixels), the grid will use ${cols.xlg} columns of + # equal width to describe sizes of widgets based on the layouts provided. + # + # Optionally, you may provide a "row_height: {a rem value}" property in + # this section to change the height of a row on the grid. By default, this + # value is 9.375rem (150px for the default 16px = 1rem configuration). + + breakpoints: + xlg: 1400 + lg: 1150 + md: 996 + sm: 650 + xs: 0 + + cols: + xlg: 16 + lg: 12 + md: 10 + sm: 6 + xs: 4 + + homepage_widgets: + # This section describes the specific widgets shown on the Home Page and how + # they are laid out by default on the grid of the page. + # + # The name of section should be the same as the widget's React component. + # + # The props property should be a set of properties to be passed on to the + # underlying React component for the widget. You may run into cases in which + # you must pass a more complex, dyamic property (perhaps fetched from the + # application redux store). Since you can not know that in the time of the + # configuration writing, such properties should be directly coded into the + # HomePage.jsx.template file (see the GroupList widget for an example) + # + # By default, any widget listed here is shown on the Home Page. However, you + # can give a widget the property "show: false" to turn off rendering of the + # widget. + # + # The resizable property determines whether the user is able to resize the + # widget after it has been rendered based on default layouts. + # + # Finally, the layouts property provides an array of default sizes/locations + # for each screen width breakpoint for the given widget. Layout arrays are + # given in the order [x, y, width, height], in units of grid columns/rows. + # For example, a layout array of [1, 2, 3, 4] will render a widget 3 grid + # columns in width, 4 grid rows in height, and have its upper-left corner at + # the column 1 (zero-indexed) and row 2. Note that each row is by default + # 150px in height. The row height can be altered in the homepage_grid + # section above (as well as other grid characteristics). + WeatherWidget: + resizeable: false + layouts: + xlg: [0, 10, 4, 1] + lg: [0, 10, 4, 1] + md: [0, 10, 4, 1] + sm: [0, 10, 4, 1] + xs: [0, 12, 4, 1] + + SourceCounts: + props: + sinceDaysAgo: 7 + resizeable: false + layouts: + xlg: [14, 0, 2, 1] + lg: [10, 0, 2, 1] + md: [8, 0, 2, 1] + sm: [4.5, 0, 1.5, 1] + xs: [0, 0, 4, 1] + + RecentSources: + resizeable: false + layouts: + xlg: [0, 0, 5, 3] + lg: [0, 0, 4, 3] + md: [0, 3, 5, 3] + sm: [0, 3, 3, 3] + xs: [0, 4, 4, 3] + + NewsFeed: + resizeable: false + layouts: + xlg: [10, 0, 4, 3] + lg: [7, 0, 3, 3] + md: [0, 0, 8, 3] + sm: [0, 0, 4.5, 3] + xs: [0, 1, 4, 3] + + TopSources: + resizeable: false + layouts: + xlg: [5, 0, 5, 3] + lg: [4, 3, 3, 3] + md: [5, 3, 5, 3] + sm: [3, 3, 3, 3] + xs: [0, 7, 4, 3] + + GroupList: + props: + title: My Groups + resizeable: true + layouts: + xlg: [14, 1, 2, 2] + lg: [10, 1, 2, 2] + md: [8, 1, 2, 2] + sm: [4.5, 1, 1.5, 2] + xs: [0, 10, 4, 2] + + database: + database: skyportal + host: localhost + port: 5432 + user: skyportal + password: password + + server: + # From https://console.developers.google.com/ # - # Optionally, you may provide a "row_height: {a rem value}" property in - # this section to change the height of a row on the grid. By default, this - # value is 9.375rem (150px for the default 16px = 1rem configuration). - - breakpoints: - xlg: 1400 - lg: 1150 - md: 996 - sm: 650 - xs: 0 - - cols: - xlg: 16 - lg: 12 - md: 10 - sm: 6 - xs: 4 - - homepage_widgets: - # This section describes the specific widgets shown on the Home Page and how - # they are laid out by default on the grid of the page. + # - Create Client ID + # - Javascript origins: https://localhost:5000 + # - Authorized redirect URLs: http://localhost:5000/complete/google-oauth2/ # - # The name of section should be the same as the widget's React component. - # - # The props property should be a set of properties to be passed on to the - # underlying React component for the widget. You may run into cases in which - # you must pass a more complex, dyamic property (perhaps fetched from the - # application redux store). Since you can not know that in the time of the - # configuration writing, such properties should be directly coded into the - # HomePage.jsx.template file (see the GroupList widget for an example) - # - # By default, any widget listed here is shown on the Home Page. However, you - # can give a widget the property "show: false" to turn off rendering of the - # widget. - # - # The resizable property determines whether the user is able to resize the - # widget after it has been rendered based on default layouts. - # - # Finally, the layouts property provides an array of default sizes/locations - # for each screen width breakpoint for the given widget. Layout arrays are - # given in the order [x, y, width, height], in units of grid columns/rows. - # For example, a layout array of [1, 2, 3, 4] will render a widget 3 grid - # columns in width, 4 grid rows in height, and have its upper-left corner at - # the column 1 (zero-indexed) and row 2. Note that each row is by default - # 150px in height. The row height can be altered in the homepage_grid - # section above (as well as other grid characteristics). - WeatherWidget: - resizeable: true - layouts: - xlg: [0, 10, 4, 1] - lg: [0, 10, 4, 1] - md: [0, 10, 4, 1] - sm: [0, 10, 4, 1] - xs: [0, 12, 4, 1] - - SourceCounts: - props: - sinceDaysAgo: 7 - resizeable: true - layouts: - xlg: [14, 0, 2, 1] - lg: [10, 0, 2, 1] - md: [8, 0, 2, 1] - sm: [4.5, 0, 1.5, 1] - xs: [0, 0, 4, 1] - - RecentSources: - resizeable: true - layouts: - xlg: [0, 0, 5, 3] - lg: [0, 0, 4, 3] - md: [0, 3, 5, 3] - sm: [0, 3, 3, 3] - xs: [0, 4, 4, 3] - - NewsFeed: - resizeable: true - layouts: - xlg: [10, 0, 4, 3] - lg: [7, 0, 3, 3] - md: [0, 0, 8, 3] - sm: [0, 0, 4.5, 3] - xs: [0, 1, 4, 3] - - TopSources: - resizeable: true - layouts: - xlg: [5, 0, 5, 3] - lg: [4, 3, 3, 3] - md: [5, 3, 5, 3] - sm: [3, 3, 3, 3] - xs: [0, 7, 4, 3] - - GroupList: - props: - title: My Groups - resizeable: true - layouts: - xlg: [14, 1, 2, 2] - lg: [10, 1, 2, 2] - md: [8, 1, 2, 2] - sm: [4.5, 1, 1.5, 2] - xs: [0, 10, 4, 2] - -database: - database: skyportal - host: localhost - port: 5432 - user: skyportal - password: - -server: - # From https://console.developers.google.com/ - # - # - Create Client ID - # - Javascript origins: https://localhost:5000 - # - Authorized redirect URLs: http://localhost:5000/complete/google-oauth2/ - # - # You need to have Google+ API enabled; it takes a few minutes to activate. - host: localhost - port: 5000 # This is the public-facing port - ssl: False # Must be either True or False - processes: 2 - - auth: - debug_login: True - google_oauth2_key: - google_oauth2_secret: - -services: - dask: False - -misc: - days_to_keep_unsaved_candidates: 7 - public_group_name: "Sitewide Group" - # Use a named cosmology from `astropy.cosmology.parameters.available` cosmologies - # or supply the arguments for an `astropy.cosmology.FLRW` cosmological instance. - # If {"flat": True} then use a subclass of the FLRW, called `FlatLambdaCMD` - # otherwise use `LambdaCDM`. See `utils.cosmology.py` for the way in which - # the user-supplied cosmology parameter set constructs the site-wide cosmology. - cosmology: Planck18_arXiv_v2 - #cosmology: {H0: "65.0", Om0: 0.3, Ode0: 0.7, name: 'skyportal_user_cosmo'} - - # The minimum signal-to-noise ratio/ n-sigma for lim mag cacluations to - # consider a photometry point as a detection - photometry_detection_threshold_nsigma: 3.0 - -weather: - # time in seconds to wait before fetching weather for a given telescope - refresh_time: 3600.0 - # Get an API key at OpenWeatherMap https://openweathermap.org/price - # the free tier should be sufficent, as we cache the weather results - # for each telescope - openweather_api_key: - -external_logging: - papertrail: - # get an account at https://papertrailapp.com - enabled: False - # change url to the correct subdomain for your account - # and change the port as well - url: + # You need to have Google+ API enabled; it takes a few minutes to activate. + + host: + port: + + ssl: False + processes: 1 + + auth: + debug_login: True + google_oauth2_key: + google_oauth2_secret: + + services: + dask: False + + misc: + days_to_keep_unsaved_candidates: 7 + public_group_name: "Sitewide Group" + # Use a named cosmology from `astropy.cosmology.parameters.available` cosmologies + # or supply the arguments for an `astropy.cosmology.FLRW` cosmological instance. + # If {"flat": True} then use a subclass of the FLRW, called `FlatLambdaCMD` + # otherwise use `LambdaCDM`. See `utils.cosmology.py` for the way in which + # the user-supplied cosmology parameter set constructs the site-wide cosmology. + cosmology: Planck18_arXiv_v2 + #cosmology: {H0: "65.0", Om0: 0.3, Ode0: 0.7, name: 'skyportal_user_cosmo'} + + external_logging: + papertrail: + # get an account at https://papertrailapp.com + enabled: False + # change url to the correct subdomain for your account + # and change the port as well + url: + port: + # which log files, if any do you not want to send over to the 3rd party? + excluded_log_files: ["log/websocket_server.log"] + + weather: + refresh_time: 3600.0 + openweather_api_key: + + cron: + - interval: 60 + script: jobs/count_unsaved_candidates.py + # - interval: 1440 + # script: jobs/delete_unsaved_candidates.py + # limit: ["01:00", "02:00"] + + twilio: + # Twilio Sendgrid API configs + # This needs to be set to a valid, Sendgrid-registered address in config.yaml + from_email: + # This needs to be obtained via Sendgrid setup on their site + sendgrid_api_key: + + # Twilio SMS API configs + # These values must be valid ones from the Twilio API console + from_number: + sms_account_sid: + sms_auth_token: + + invitations: + enabled: False # If debug_login=True above, invite tokens won't be used during auth + days_until_expiry: 3 + email_subject: "You have been invited to collaborate on Fritz" + email_body_preamble: | # This can include HTML tags + Welcome to Fritz! +
+ Dark star crashes, pouring its light into ashes. + + notifications: + enabled: True + + standard_stars: + ZTF: data/ztf_standards.csv + ESO: data/eso_standards.csv + + smtp: + from_email: + password: + host: port: - # which log files, if any do you not want to send over to the 3rd party? - excluded_log_files: ["log/websocket_server.log"] - -cron: - - interval: 60 - script: jobs/count_unsaved_candidates.py - # - interval: 1440 - # script: jobs/delete_unsaved_candidates.py - # limit: ["01:00", "02:00"] - -twilio: - # Twilio Sendgrid API configs - # This needs to be set to a valid, Sendgrid-registered address in config.yaml - from_email: - # This needs to be obtained via Sendgrid setup on their site - sendgrid_api_key: - - # Twilio SMS API configs - # These values must be valid ones from the Twitter API console - from_number: - sms_account_sid: - sms_auth_token: - -smtp: - from_email: # This is both the email used to authenticate with smtplib and the sender address - password: - host: smtp.gmail.com # Default Gmail settings; modify as needed - port: 587 # Default Gmail settings; modify as needed - -# This value needs to be either "sendgrid" or "smtp" (without quotes) -email_service: - -invitations: - enabled: False # If debug_login=True above, invite tokens won't be used during auth - days_until_expiry: 3 - email_subject: "You've been invited to collaborate on SkyPortal" - email_body_preamble: | # This can include HTML tags - Welcome to SkyPortal! -
- Some other text here. - -notifications: - enabled: True - -standard_stars: - ZTF: data/ztf_standards.csv - ESO: data/eso_standards.csv + # This value needs to be either "sendgrid" or "smtp" (without quotes) + email_service: sendgrid