Documentation
¶
Index ¶
- Constants
- Variables
- func Authenticate(jwtSecret []byte, store *db.Database, next http.Handler) http.Handler
- func Backup(dbInstance *db.Database) http.HandlerFunc
- func ClearRadioEvents(dbInstance *db.Database) http.Handler
- func ClearSubscriberUsage(dbInstance *db.Database) http.Handler
- func CreateDataNetwork(dbInstance *db.Database) http.Handler
- func CreateMyAPIToken(dbInstance *db.Database) http.Handler
- func CreatePolicy(dbInstance *db.Database) http.Handler
- func CreateRoute(dbInstance *db.Database, kernelInt kernel.Kernel) http.Handler
- func CreateSubscriber(dbInstance *db.Database) http.Handler
- func CreateUser(dbInstance *db.Database) http.Handler
- func DeleteDataNetwork(dbInstance *db.Database) http.Handler
- func DeleteMyAPIToken(dbInstance *db.Database) http.Handler
- func DeletePolicy(dbInstance *db.Database) http.Handler
- func DeleteRoute(dbInstance *db.Database, kernelInt kernel.Kernel) http.Handler
- func DeleteSubscriber(dbInstance *db.Database) http.Handler
- func DeleteUser(dbInstance *db.Database) http.Handler
- func GetAuditLogRetentionPolicy(dbInstance *db.Database) http.Handler
- func GetDataNetwork(dbInstance *db.Database) http.Handler
- func GetLoggedInUser(dbInstance *db.Database) http.Handler
- func GetMetrics() http.Handler
- func GetNATInfo(dbInstance *db.Database) http.Handler
- func GetOperator(dbInstance *db.Database) http.Handler
- func GetOperatorID(dbInstance *db.Database) http.Handler
- func GetOperatorSlice(dbInstance *db.Database) http.Handler
- func GetOperatorTracking(dbInstance *db.Database) http.Handler
- func GetPolicy(dbInstance *db.Database) http.Handler
- func GetRadio() http.HandlerFunc
- func GetRadioEvent(dbInstance *db.Database) http.Handler
- func GetRadioEventRetentionPolicy(dbInstance *db.Database) http.Handler
- func GetRoute(dbInstance *db.Database) http.Handler
- func GetStatus(dbInstance *db.Database) http.Handler
- func GetSubscriber(dbInstance *db.Database) http.Handler
- func GetSubscriberUsage(dbInstance *db.Database) http.Handler
- func GetSubscriberUsageRetentionPolicy(dbInstance *db.Database) http.Handler
- func GetUser(dbInstance *db.Database) http.Handler
- func Initialize(dbInstance *db.Database, secureCookie bool) http.Handler
- func ListAuditLogs(dbInstance *db.Database) http.Handler
- func ListDataNetworks(dbInstance *db.Database) http.Handler
- func ListMyAPITokens(dbInstance *db.Database) http.Handler
- func ListNetworkInterfaces(dbInstance *db.Database, cfg config.Config) http.Handler
- func ListPolicies(dbInstance *db.Database) http.Handler
- func ListRadioEvents(dbInstance *db.Database) http.Handler
- func ListRadios() http.HandlerFunc
- func ListRoutes(dbInstance *db.Database) http.Handler
- func ListSubscribers(dbInstance *db.Database) http.Handler
- func ListUsers(dbInstance *db.Database) http.Handler
- func Login(dbInstance *db.Database, secureCookie bool) http.Handler
- func Logout(dbInstance *db.Database, secureCookie bool) http.Handler
- func LookupToken(dbInstance *db.Database, jwtSecret []byte) http.Handler
- func NewHandler(dbInstance *db.Database, cfg config.Config, upf UPFUpdater, ...) http.Handler
- func ParseSDString(s string) ([]byte, error)
- func Refresh(dbInstance *db.Database, jwtSecret []byte) http.Handler
- func RequirePermission(permission string, jwtSecret []byte, next http.Handler) http.Handler
- func Restore(dbInstance *db.Database) http.HandlerFunc
- func SDToString(sd []byte) string
- func TracingMiddleware(serviceName string, handler http.Handler) http.Handler
- func UpdateAuditLogRetentionPolicy(dbInstance *db.Database) http.Handler
- func UpdateDataNetwork(dbInstance *db.Database) http.Handler
- func UpdateMyUserPassword(dbInstance *db.Database) http.Handler
- func UpdateN3Interface(dbInstance *db.Database, upf UPFUpdater, cfg config.Config) http.Handler
- func UpdateNATInfo(dbInstance *db.Database, upf UPFUpdater) http.Handler
- func UpdateOperatorCode(dbInstance *db.Database) http.Handler
- func UpdateOperatorHomeNetwork(dbInstance *db.Database) http.Handler
- func UpdateOperatorID(dbInstance *db.Database) http.Handler
- func UpdateOperatorSlice(dbInstance *db.Database) http.Handler
- func UpdateOperatorTracking(dbInstance *db.Database) http.Handler
- func UpdatePolicy(dbInstance *db.Database) http.Handler
- func UpdateRadioEventRetentionPolicy(dbInstance *db.Database) http.Handler
- func UpdateSubscriber(dbInstance *db.Database) http.Handler
- func UpdateSubscriberUsageRetentionPolicy(dbInstance *db.Database) http.Handler
- func UpdateUser(dbInstance *db.Database) http.Handler
- func UpdateUserPassword(dbInstance *db.Database) http.Handler
- type APIInterface
- type APIToken
- type AuditLog
- type CreateAPITokenParams
- type CreateAPITokenResponse
- type CreateDataNetworkParams
- type CreatePolicyParams
- type CreateRouteParams
- type CreateSubscriberParams
- type CreateSuccessResponse
- type CreateUserParams
- type DataNetwork
- type DataNetworkStatus
- type ErrorResponse
- type GetAuditLogsRetentionPolicyResponse
- type GetNATInfoResponse
- type GetOperatorHomeNetworkResponse
- type GetOperatorIDResponse
- type GetOperatorResponse
- type GetOperatorSliceResponse
- type GetOperatorTrackingResponse
- type GetRadioEventResponse
- type GetRadioEventsRetentionPolicyResponse
- type GetSubscriberUsageRetentionPolicyResponse
- type InitializeParams
- type ListAPITokensResponse
- type ListAuditLogsResponse
- type ListDataNetworksResponse
- type ListPoliciesResponse
- type ListRadioEventsResponse
- type ListRadiosResponse
- type ListRoutesResponse
- type ListSubscribersResponse
- type ListUsersResponse
- type LoginParams
- type LookupTokenResponse
- type N2Interface
- type N3Interface
- type N6Interface
- type NetworkInterfaces
- type PlmnID
- type Policy
- type Radio
- type RadioEvent
- type RefreshResponse
- type Response
- type RoleID
- type Route
- type Snssai
- type StatusResponse
- type Subscriber
- type SubscriberSession
- type SubscriberStatus
- type SubscriberUsage
- type SuccessResponse
- type SupportedTAI
- type Tai
- type UPFUpdater
- type UpdateAuditLogsRetentionPolicyParams
- type UpdateMyUserPasswordParams
- type UpdateN3SettingsParams
- type UpdateNATInfoParams
- type UpdateOperatorCodeParams
- type UpdateOperatorHomeNetworkParams
- type UpdateOperatorIDParams
- type UpdateOperatorSliceParams
- type UpdateOperatorTrackingParams
- type UpdateRadioEventsRetentionPolicyParams
- type UpdateSubscriberParams
- type UpdateSubscriberUsageRetentionPolicyParams
- type UpdateUserParams
- type UpdateUserPasswordParams
- type User
- type Vlan
Constants ¶
View Source
const ( AccessTokenDuration = 15 * time.Minute // short-lived SessionTokenDuration = 30 * 24 * time.Hour // long-lived SessionTokenCookieName = "session_token" )
View Source
const ( DeleteDataNetworkAction = "delete_data_network" CreateDataNetworkAction = "create_data_network" UpdateDataNetworkAction = "update_data_network" )
View Source
const ( UpdateOperatorSliceAction = "update_operator_slice" UpdateOperatorTrackingAction = "update_operator_tracking" UpdateOperatorIDAction = "update_operator_id" UpdateOperatorCodeAction = "update_operator_code" UpdateOperatorHomeNetworkAction = "update_operator_home_network" )
View Source
const ( CreatePolicyAction = "create_policy" UpdatePolicyAction = "update_policy" DeletePolicyAction = "delete_policy" )
View Source
const ( CreateRouteAction = "create_route" DeleteRouteAction = "delete_route" )
View Source
const ( UpdateSubscriberUsageRetentionPolicyAction = "update_subscriber_usage_retention_policy" ClearSubscriberUsageAction = "clear_subscriber_usage" )
View Source
const ( CreateSubscriberAction = "create_subscriber" UpdateSubscriberAction = "update_subscriber" DeleteSubscriberAction = "delete_subscriber" )
View Source
const ( CreateUserAction = "create_user" UpdateUserAction = "update_user" DeleteUserAction = "delete_user" UpdateUserPasswordAction = "update_user_password" CreateAPITokenAction = "create_api_token" DeleteAPITokenAction = "delete_api_token" )
View Source
const ( MaxNumUsers = 50 MaxNumAPITokens = 12 )
View Source
const ( // User permissions PermListUsers = "user:list" PermCreateUser = "user:create" PermUpdateUser = "user:update" PermUpdateUserPassword = "user:update_password" PermReadUser = "user:read" PermDeleteUser = "user:delete" PermReadMyUser = "user:read_my_user" PermUpdateMyUserPassword = "user:update_my_user_password" // #nosec: G101 PermListMyAPITokens = "user:list_my_api_tokens" // #nosec: G101 PermCreateMyAPIToken = "user:create_my_api_token" PermDeleteMyAPIToken = "user:delete_my_api_token" // Data Network permissions PermListDataNetworks = "data_network:list" PermCreateDataNetwork = "data_network:create" PermUpdateDataNetwork = "data_network:update" PermReadDataNetwork = "data_network:read" PermDeleteDataNetwork = "data_network:delete" // Operator permissions PermReadOperator = "operator:read" PermUpdateOperatorSlice = "operator:update_slice" PermGetOperatorSlice = "operator:get_slice" PermUpdateOperatorTracking = "operator:update_tracking" PermGetOperatorTracking = "operator:get_tracking" PermUpdateOperatorID = "operator:update_id" PermGetOperatorID = "operator:get_id" PermUpdateOperatorCode = "operator:update_code" PermUpdateOperatorHomeNetwork = "operator:update_home_network" // Subscriber permissions PermListSubscribers = "subscriber:list" PermCreateSubscriber = "subscriber:create" PermUpdateSubscriber = "subscriber:update" PermReadSubscriber = "subscriber:read" PermDeleteSubscriber = "subscriber:delete" // Subscriber Usage permissions PermGetSubscriberUsageRetentionPolicy = "subscriber_usage:get_retention" PermSetSubscriberUsageRetentionPolicy = "subscriber_usage:set_retention" PermClearSubscriberUsage = "subscriber_usage:clear" PermGetSubscriberUsage = "subscriber_usage:get" // Policy permissions PermListPolicies = "policy:list" PermCreatePolicy = "policy:create" PermUpdatePolicy = "policy:update" PermReadPolicy = "policy:read" PermDeletePolicy = "policy:delete" // Route permissions PermListRoutes = "route:list" PermCreateRoute = "route:create" PermReadRoute = "route:read" PermDeleteRoute = "route:delete" // NAT permissions PermGetNATInfo = "nat:get" PermUpdateNATInfo = "nat:update" // Interface permissions PermListNetworkInterfaces = "network_interface:list" PermUpdateN3Interface = "network_interface:update_n3" // Radio permissions PermListRadios = "radio:list" PermReadRadio = "radio:read" // Radio event permissions PermGetRadioEventRetentionPolicy = "radio_events:get_retention" PermSetRadioEventRetentionPolicy = "radio_events:set_retention" PermListRadioEvents = "radio_events:list" PermClearRadioEvents = "radio_events:clear" PermGetRadioEvent = "radio_events:get" // Backup and Restore permissions PermBackup = "backup:create" PermRestore = "backup:restore" // Audit Log permissions PermGetAuditLogRetentionPolicy = "audit_logs:get_retention" PermSetAuditLogRetentionPolicy = "audit_logs:set_retention" PermListAuditLogs = "audit_logs:list" )
View Source
const AuthenticationAction = "user_authentication"
View Source
const BackupAction = "backup_database"
View Source
const (
InitializeAction = "initialize"
)
View Source
const (
LoginAction = "auth_login"
)
View Source
const MaxNumDataNetworks = 12
View Source
const (
MaxNumPolicies = 12
)
View Source
const (
MaxNumRoutes = 12
)
View Source
const (
MaxNumSubscribers = 1000
)
View Source
const (
MaxSupportedTACs = 12
)
View Source
const RestoreAction = "restore_database"
View Source
const (
UpdateAuditLogRetentionPolicyAction = "update_audit_log_retention_policy"
)
View Source
const (
UpdateN3SettingsAction = "update_n3_settings"
)
View Source
const (
UpdateNATSettingsAction = "update_nat_settings"
)
View Source
const (
UpdateRadioEventRetentionPolicyAction = "update_network_log_retention_policy"
)
Variables ¶
View Source
var PermissionsByRole = map[RoleID][]string{ RoleAdmin: {"*"}, RoleReadOnly: { PermReadMyUser, PermUpdateMyUserPassword, PermReadOperator, PermGetOperatorSlice, PermGetOperatorTracking, PermListSubscribers, PermReadSubscriber, PermListDataNetworks, PermReadDataNetwork, PermListPolicies, PermReadPolicy, PermListRoutes, PermReadRoute, PermListRadios, PermReadRadio, PermGetNATInfo, PermGetSubscriberUsageRetentionPolicy, PermGetSubscriberUsage, PermListRadioEvents, PermGetRadioEventRetentionPolicy, PermGetRadioEvent, }, RoleNetworkManager: { PermReadUser, PermReadMyUser, PermUpdateMyUserPassword, PermReadOperator, PermUpdateOperatorSlice, PermGetOperatorSlice, PermUpdateOperatorTracking, PermGetOperatorTracking, PermListDataNetworks, PermCreateDataNetwork, PermUpdateDataNetwork, PermReadDataNetwork, PermDeleteDataNetwork, PermListSubscribers, PermCreateSubscriber, PermUpdateSubscriber, PermReadSubscriber, PermDeleteSubscriber, PermListPolicies, PermCreatePolicy, PermUpdatePolicy, PermReadPolicy, PermDeletePolicy, PermListRoutes, PermCreateRoute, PermReadRoute, PermDeleteRoute, PermListRadios, PermReadRadio, PermGetNATInfo, PermUpdateNATInfo, PermListRadioEvents, PermGetRadioEventRetentionPolicy, PermSetRadioEventRetentionPolicy, PermClearRadioEvents, PermGetRadioEvent, }, }
Functions ¶
func Authenticate ¶
func ClearSubscriberUsage ¶ added in v0.6.0
func CreateDataNetwork ¶ added in v0.1.0
func CreateRoute ¶ added in v0.0.9
func DeleteDataNetwork ¶ added in v0.1.0
func DeleteRoute ¶ added in v0.0.9
func GetAuditLogRetentionPolicy ¶ added in v0.2.0
func GetMetrics ¶
func GetRadio ¶
func GetRadio() http.HandlerFunc
func GetRadioEventRetentionPolicy ¶ added in v0.6.0
func GetSubscriberUsage ¶ added in v0.6.0
func GetSubscriberUsageRetentionPolicy ¶ added in v0.6.0
func Initialize ¶ added in v0.4.0
func ListNetworkInterfaces ¶ added in v0.5.0
func ListRadios ¶
func ListRadios() http.HandlerFunc
func NewHandler ¶
func ParseSDString ¶ added in v0.4.0
func RequirePermission ¶ added in v0.0.19
func SDToString ¶ added in v0.4.0
func TracingMiddleware ¶ added in v0.0.19
TracingMiddleware wraps the handler in OpenTelemetry HTTP middleware
func UpdateAuditLogRetentionPolicy ¶ added in v0.2.0
func UpdateDataNetwork ¶ added in v0.1.0
func UpdateMyUserPassword ¶ added in v0.2.0
func UpdateN3Interface ¶ added in v0.5.0
func UpdateNATInfo ¶ added in v0.3.0
func UpdateNATInfo(dbInstance *db.Database, upf UPFUpdater) http.Handler
func UpdateOperatorID ¶ added in v0.0.12
func UpdateRadioEventRetentionPolicy ¶ added in v0.6.0
func UpdateSubscriberUsageRetentionPolicy ¶ added in v0.6.0
Types ¶
type APIInterface ¶ added in v0.5.0
type CreateAPITokenParams ¶ added in v0.2.0
type CreateAPITokenResponse ¶ added in v0.2.0
type CreateAPITokenResponse struct {
Token string `json:"token"`
}
type CreateDataNetworkParams ¶ added in v0.1.0
type CreatePolicyParams ¶ added in v0.1.0
type CreatePolicyParams struct {
Name string `json:"name"`
BitrateUplink string `json:"bitrate_uplink,omitempty"`
BitrateDownlink string `json:"bitrate_downlink,omitempty"`
Var5qi int32 `json:"var5qi,omitempty"`
Arp int32 `json:"arp,omitempty"`
DataNetworkName string `json:"data_network_name,omitempty"`
}
type CreateRouteParams ¶ added in v0.0.9
type CreateSubscriberParams ¶
type CreateSuccessResponse ¶ added in v0.0.9
type CreateUserParams ¶
type DataNetwork ¶ added in v0.3.0
type DataNetwork struct {
Name string `json:"name"`
IPPool string `json:"ip_pool"`
DNS string `json:"dns,omitempty"`
MTU int32 `json:"mtu,omitempty"`
Status DataNetworkStatus `json:"status"`
}
type DataNetworkStatus ¶ added in v0.2.0
type DataNetworkStatus struct {
Sessions int `json:"sessions"`
}
type ErrorResponse ¶ added in v0.3.0
type ErrorResponse struct {
Error string `json:"error"`
}
type GetAuditLogsRetentionPolicyResponse ¶ added in v0.2.0
type GetAuditLogsRetentionPolicyResponse struct {
Days int `json:"days"`
}
type GetNATInfoResponse ¶ added in v0.3.0
type GetNATInfoResponse struct {
Enabled bool `json:"enabled"`
}
type GetOperatorHomeNetworkResponse ¶
type GetOperatorHomeNetworkResponse struct {
PublicKey string `json:"publicKey,omitempty"`
}
type GetOperatorIDResponse ¶ added in v0.0.12
type GetOperatorResponse ¶
type GetOperatorResponse struct {
ID GetOperatorIDResponse `json:"id,omitempty"`
Slice GetOperatorSliceResponse `json:"slice,omitempty"`
Tracking GetOperatorTrackingResponse `json:"tracking,omitempty"`
HomeNetwork GetOperatorHomeNetworkResponse `json:"homeNetwork,omitempty"`
}
type GetOperatorTrackingResponse ¶
type GetOperatorTrackingResponse struct {
SupportedTacs []string `json:"supportedTacs,omitempty"`
}
type GetRadioEventResponse ¶ added in v0.6.0
type GetRadioEventResponse struct {
Raw []byte `json:"raw"`
Decoded ngap.NGAPMessage `json:"decoded"`
}
type GetRadioEventsRetentionPolicyResponse ¶ added in v0.6.0
type GetRadioEventsRetentionPolicyResponse struct {
Days int `json:"days"`
}
type GetSubscriberUsageRetentionPolicyResponse ¶ added in v0.6.0
type GetSubscriberUsageRetentionPolicyResponse struct {
Days int `json:"days"`
}
type InitializeParams ¶ added in v0.4.0
type ListAPITokensResponse ¶ added in v0.3.0
type ListAuditLogsResponse ¶ added in v0.3.0
type ListDataNetworksResponse ¶ added in v0.3.0
type ListDataNetworksResponse struct {
Items []DataNetwork `json:"items"`
Page int `json:"page"`
PerPage int `json:"per_page"`
TotalCount int `json:"total_count"`
}
type ListPoliciesResponse ¶ added in v0.3.0
type ListRadioEventsResponse ¶ added in v0.6.0
type ListRadioEventsResponse struct {
Items []RadioEvent `json:"items"`
Page int `json:"page"`
PerPage int `json:"per_page"`
TotalCount int `json:"total_count"`
}
type ListRadiosResponse ¶ added in v0.3.0
type ListRoutesResponse ¶ added in v0.3.0
type ListSubscribersResponse ¶ added in v0.3.0
type ListSubscribersResponse struct {
Items []Subscriber `json:"items"`
Page int `json:"page"`
PerPage int `json:"per_page"`
TotalCount int `json:"total_count"`
}
type ListUsersResponse ¶ added in v0.3.0
type LoginParams ¶
type LookupTokenResponse ¶
type LookupTokenResponse struct {
Valid bool `json:"valid"`
}
type N2Interface ¶ added in v0.5.0
type N3Interface ¶ added in v0.5.0
type N6Interface ¶ added in v0.5.0
type NetworkInterfaces ¶ added in v0.5.0
type NetworkInterfaces struct {
N2 N2Interface `json:"n2"`
N3 N3Interface `json:"n3"`
N6 N6Interface `json:"n6"`
API APIInterface `json:"api"`
}
type Radio ¶ added in v0.3.0
type Radio struct {
Name string `json:"name"`
ID string `json:"id"`
Address string `json:"address"`
SupportedTAIs []SupportedTAI `json:"supported_tais"`
}
type RadioEvent ¶ added in v0.6.0
type RadioEvent struct {
ID int `json:"id"`
Timestamp string `json:"timestamp"`
Protocol string `json:"protocol"`
MessageType string `json:"message_type"`
Direction string `json:"direction"`
LocalAddress string `json:"local_address"`
RemoteAddress string `json:"remote_address"`
Raw []byte `json:"raw"`
Details string `json:"details"`
}
type RefreshResponse ¶ added in v0.3.0
type RefreshResponse struct {
Token string `json:"token"`
}
type StatusResponse ¶
type Subscriber ¶ added in v0.3.0
type SubscriberSession ¶ added in v0.1.0
type SubscriberSession struct {
IPAddress string `json:"ipAddress"`
}
type SubscriberStatus ¶ added in v0.1.0
type SubscriberStatus struct {
Registered bool `json:"registered"`
Sessions []SubscriberSession `json:"sessions"`
}
type SubscriberUsage ¶ added in v0.6.0
type SuccessResponse ¶
type SuccessResponse struct {
Message string `json:"message"`
}
type SupportedTAI ¶
type UPFUpdater ¶ added in v0.5.0
type UpdateAuditLogsRetentionPolicyParams ¶ added in v0.2.0
type UpdateAuditLogsRetentionPolicyParams struct {
Days int `json:"days"`
}
type UpdateMyUserPasswordParams ¶ added in v0.2.0
type UpdateMyUserPasswordParams struct {
Password string `json:"password"`
}
type UpdateN3SettingsParams ¶ added in v0.5.0
type UpdateN3SettingsParams struct {
ExternalAddress string `json:"external_address"`
}
type UpdateNATInfoParams ¶ added in v0.3.0
type UpdateNATInfoParams struct {
Enabled bool `json:"enabled"`
}
type UpdateOperatorCodeParams ¶
type UpdateOperatorCodeParams struct {
OperatorCode string `json:"operatorCode,omitempty"`
}
type UpdateOperatorHomeNetworkParams ¶
type UpdateOperatorHomeNetworkParams struct {
PrivateKey string `json:"privateKey,omitempty"`
}
type UpdateOperatorIDParams ¶ added in v0.0.12
type UpdateOperatorTrackingParams ¶
type UpdateOperatorTrackingParams struct {
SupportedTacs []string `json:"supportedTacs,omitempty"`
}
type UpdateRadioEventsRetentionPolicyParams ¶ added in v0.6.0
type UpdateRadioEventsRetentionPolicyParams struct {
Days int `json:"days"`
}
type UpdateSubscriberParams ¶
type UpdateSubscriberUsageRetentionPolicyParams ¶ added in v0.6.0
type UpdateSubscriberUsageRetentionPolicyParams struct {
Days int `json:"days"`
}
type UpdateUserParams ¶
Source Files
¶
- api_audit_logs.go
- api_auth.go
- api_backup.go
- api_data_networks.go
- api_initialize.go
- api_interfaces.go
- api_metrics.go
- api_nat.go
- api_operator.go
- api_policies.go
- api_radio_events.go
- api_radios.go
- api_restore.go
- api_routes.go
- api_status.go
- api_subscriber_usage.go
- api_subscribers.go
- api_users.go
- authentication_middleware.go
- authorization_middleware.go
- frontend.go
- helpers.go
- op.go
- response.go
- server.go
- tracing_middleware.go
Click to show internal directories.
Click to hide internal directories.