import React from 'react'; import { connect } from 'react-redux'; import { hot } from 'react-hot-loader'; import { getBackendSrv } from '@grafana/runtime'; import { NavModel } from '@grafana/data'; import { StoreState } from 'app/types'; import { getNavModel } from 'app/core/selectors/navModel'; import Page from 'app/core/components/Page/Page'; type Settings = { [key: string]: { [key: string]: string } }; interface Props { navModel: NavModel; } interface State { settings: Settings; isLoading: boolean; } export class AdminSettings extends React.PureComponent { state: State = { settings: {}, isLoading: true, }; async componentDidMount() { const settings: Settings = await getBackendSrv().get('/api/admin/settings'); this.setState({ settings, isLoading: false, }); } render() { const { settings, isLoading } = this.state; const { navModel } = this.props; return (
These system settings are defined in grafana.ini or custom.ini (or overridden in ENV variables). To change these you currently need to restart grafana.
{Object.entries(settings).map(([sectionName, sectionSettings], i) => ( {Object.entries(sectionSettings).map(([settingName, settingValue], j) => ( ))} ))}
{sectionName}
{settingName} {settingValue}
); } } const mapStateToProps = (state: StoreState) => ({ navModel: getNavModel(state.navIndex, 'server-settings'), }); export default hot(module)(connect(mapStateToProps)(AdminSettings));