netbird/management/proto/management.pb.go

2214 lines
78 KiB
Go
Raw Normal View History

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: management.proto
package proto
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type HostConfig_Protocol int32
const (
HostConfig_UDP HostConfig_Protocol = 0
HostConfig_TCP HostConfig_Protocol = 1
HostConfig_HTTP HostConfig_Protocol = 2
HostConfig_HTTPS HostConfig_Protocol = 3
HostConfig_DTLS HostConfig_Protocol = 4
)
var HostConfig_Protocol_name = map[int32]string{
0: "UDP",
1: "TCP",
2: "HTTP",
3: "HTTPS",
4: "DTLS",
}
var HostConfig_Protocol_value = map[string]int32{
"UDP": 0,
"TCP": 1,
"HTTP": 2,
"HTTPS": 3,
"DTLS": 4,
}
func (x HostConfig_Protocol) String() string {
return proto.EnumName(HostConfig_Protocol_name, int32(x))
}
func (HostConfig_Protocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{11, 0}
}
type DeviceAuthorizationFlowProvider int32
const (
DeviceAuthorizationFlow_HOSTED DeviceAuthorizationFlowProvider = 0
)
var DeviceAuthorizationFlowProvider_name = map[int32]string{
0: "HOSTED",
}
var DeviceAuthorizationFlowProvider_value = map[string]int32{
"HOSTED": 0,
}
func (x DeviceAuthorizationFlowProvider) String() string {
return proto.EnumName(DeviceAuthorizationFlowProvider_name, int32(x))
}
func (DeviceAuthorizationFlowProvider) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{18, 0}
}
type FirewallRuleDirection int32
const (
FirewallRule_IN FirewallRuleDirection = 0
FirewallRule_OUT FirewallRuleDirection = 1
)
var FirewallRuleDirection_name = map[int32]string{
0: "IN",
1: "OUT",
}
var FirewallRuleDirection_value = map[string]int32{
"IN": 0,
"OUT": 1,
}
func (x FirewallRuleDirection) String() string {
return proto.EnumName(FirewallRuleDirection_name, int32(x))
}
func (FirewallRuleDirection) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{28, 0}
}
type FirewallRuleAction int32
const (
FirewallRule_ACCEPT FirewallRuleAction = 0
FirewallRule_DROP FirewallRuleAction = 1
)
var FirewallRuleAction_name = map[int32]string{
0: "ACCEPT",
1: "DROP",
}
var FirewallRuleAction_value = map[string]int32{
"ACCEPT": 0,
"DROP": 1,
}
func (x FirewallRuleAction) String() string {
return proto.EnumName(FirewallRuleAction_name, int32(x))
}
func (FirewallRuleAction) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{28, 1}
}
type FirewallRuleProtocol int32
const (
FirewallRule_UNKNOWN FirewallRuleProtocol = 0
FirewallRule_ALL FirewallRuleProtocol = 1
FirewallRule_TCP FirewallRuleProtocol = 2
FirewallRule_UDP FirewallRuleProtocol = 3
FirewallRule_ICMP FirewallRuleProtocol = 4
)
var FirewallRuleProtocol_name = map[int32]string{
0: "UNKNOWN",
1: "ALL",
2: "TCP",
3: "UDP",
4: "ICMP",
}
var FirewallRuleProtocol_value = map[string]int32{
"UNKNOWN": 0,
"ALL": 1,
"TCP": 2,
"UDP": 3,
"ICMP": 4,
}
func (x FirewallRuleProtocol) String() string {
return proto.EnumName(FirewallRuleProtocol_name, int32(x))
}
func (FirewallRuleProtocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{28, 2}
}
type EncryptedMessage struct {
// Wireguard public key
WgPubKey string `protobuf:"bytes,1,opt,name=wgPubKey,proto3" json:"wgPubKey,omitempty"`
// encrypted message Body
Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
// Version of the Wiretrustee Management Service protocol
Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *EncryptedMessage) Reset() { *m = EncryptedMessage{} }
func (m *EncryptedMessage) String() string { return proto.CompactTextString(m) }
func (*EncryptedMessage) ProtoMessage() {}
func (*EncryptedMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{0}
}
func (m *EncryptedMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EncryptedMessage.Unmarshal(m, b)
}
func (m *EncryptedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EncryptedMessage.Marshal(b, m, deterministic)
}
func (m *EncryptedMessage) XXX_Merge(src proto.Message) {
xxx_messageInfo_EncryptedMessage.Merge(m, src)
}
func (m *EncryptedMessage) XXX_Size() int {
return xxx_messageInfo_EncryptedMessage.Size(m)
}
func (m *EncryptedMessage) XXX_DiscardUnknown() {
xxx_messageInfo_EncryptedMessage.DiscardUnknown(m)
}
var xxx_messageInfo_EncryptedMessage proto.InternalMessageInfo
func (m *EncryptedMessage) GetWgPubKey() string {
if m != nil {
return m.WgPubKey
}
return ""
}
func (m *EncryptedMessage) GetBody() []byte {
if m != nil {
return m.Body
}
return nil
}
func (m *EncryptedMessage) GetVersion() int32 {
if m != nil {
return m.Version
}
return 0
}
type SyncRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncRequest) Reset() { *m = SyncRequest{} }
func (m *SyncRequest) String() string { return proto.CompactTextString(m) }
func (*SyncRequest) ProtoMessage() {}
func (*SyncRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{1}
}
func (m *SyncRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncRequest.Unmarshal(m, b)
}
func (m *SyncRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncRequest.Marshal(b, m, deterministic)
}
func (m *SyncRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncRequest.Merge(m, src)
}
func (m *SyncRequest) XXX_Size() int {
return xxx_messageInfo_SyncRequest.Size(m)
}
func (m *SyncRequest) XXX_DiscardUnknown() {
xxx_messageInfo_SyncRequest.DiscardUnknown(m)
}
var xxx_messageInfo_SyncRequest proto.InternalMessageInfo
// SyncResponse represents a state that should be applied to the local peer (e.g. Wiretrustee servers config as well as local peer and remote peers configs)
type SyncResponse struct {
// Global config
WiretrusteeConfig *WiretrusteeConfig `protobuf:"bytes,1,opt,name=wiretrusteeConfig,proto3" json:"wiretrusteeConfig,omitempty"`
// Deprecated. Use NetworkMap.PeerConfig
PeerConfig *PeerConfig `protobuf:"bytes,2,opt,name=peerConfig,proto3" json:"peerConfig,omitempty"`
// Deprecated. Use NetworkMap.RemotePeerConfig
RemotePeers []*RemotePeerConfig `protobuf:"bytes,3,rep,name=remotePeers,proto3" json:"remotePeers,omitempty"`
// Indicates whether remotePeers array is empty or not to bypass protobuf null and empty array equality.
// Deprecated. Use NetworkMap.remotePeersIsEmpty
RemotePeersIsEmpty bool `protobuf:"varint,4,opt,name=remotePeersIsEmpty,proto3" json:"remotePeersIsEmpty,omitempty"`
NetworkMap *NetworkMap `protobuf:"bytes,5,opt,name=NetworkMap,proto3" json:"NetworkMap,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncResponse) Reset() { *m = SyncResponse{} }
func (m *SyncResponse) String() string { return proto.CompactTextString(m) }
func (*SyncResponse) ProtoMessage() {}
func (*SyncResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{2}
}
func (m *SyncResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncResponse.Unmarshal(m, b)
}
func (m *SyncResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncResponse.Marshal(b, m, deterministic)
}
func (m *SyncResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncResponse.Merge(m, src)
}
func (m *SyncResponse) XXX_Size() int {
return xxx_messageInfo_SyncResponse.Size(m)
}
func (m *SyncResponse) XXX_DiscardUnknown() {
xxx_messageInfo_SyncResponse.DiscardUnknown(m)
}
var xxx_messageInfo_SyncResponse proto.InternalMessageInfo
func (m *SyncResponse) GetWiretrusteeConfig() *WiretrusteeConfig {
if m != nil {
return m.WiretrusteeConfig
}
return nil
}
func (m *SyncResponse) GetPeerConfig() *PeerConfig {
if m != nil {
return m.PeerConfig
}
return nil
}
func (m *SyncResponse) GetRemotePeers() []*RemotePeerConfig {
if m != nil {
return m.RemotePeers
}
return nil
}
func (m *SyncResponse) GetRemotePeersIsEmpty() bool {
if m != nil {
return m.RemotePeersIsEmpty
}
return false
}
func (m *SyncResponse) GetNetworkMap() *NetworkMap {
if m != nil {
return m.NetworkMap
}
return nil
}
type LoginRequest struct {
// Pre-authorized setup key (can be empty)
SetupKey string `protobuf:"bytes,1,opt,name=setupKey,proto3" json:"setupKey,omitempty"`
// Meta data of the peer (e.g. name, os_name, os_version,
Meta *PeerSystemMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
// SSO token (can be empty)
JwtToken string `protobuf:"bytes,3,opt,name=jwtToken,proto3" json:"jwtToken,omitempty"`
// Can be absent for now.
PeerKeys *PeerKeys `protobuf:"bytes,4,opt,name=peerKeys,proto3" json:"peerKeys,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LoginRequest) Reset() { *m = LoginRequest{} }
func (m *LoginRequest) String() string { return proto.CompactTextString(m) }
func (*LoginRequest) ProtoMessage() {}
func (*LoginRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{3}
}
func (m *LoginRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoginRequest.Unmarshal(m, b)
}
func (m *LoginRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LoginRequest.Marshal(b, m, deterministic)
}
func (m *LoginRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_LoginRequest.Merge(m, src)
}
func (m *LoginRequest) XXX_Size() int {
return xxx_messageInfo_LoginRequest.Size(m)
}
func (m *LoginRequest) XXX_DiscardUnknown() {
xxx_messageInfo_LoginRequest.DiscardUnknown(m)
2021-07-20 18:09:26 +02:00
}
var xxx_messageInfo_LoginRequest proto.InternalMessageInfo
func (m *LoginRequest) GetSetupKey() string {
if m != nil {
return m.SetupKey
}
return ""
}
func (m *LoginRequest) GetMeta() *PeerSystemMeta {
if m != nil {
return m.Meta
}
return nil
}
func (m *LoginRequest) GetJwtToken() string {
if m != nil {
return m.JwtToken
}
return ""
}
func (m *LoginRequest) GetPeerKeys() *PeerKeys {
if m != nil {
return m.PeerKeys
}
return nil
}
// PeerKeys is additional peer info like SSH pub key and WireGuard public key.
// This message is sent on Login or register requests, or when a key rotation has to happen.
type PeerKeys struct {
// sshPubKey represents a public SSH key of the peer. Can be absent.
SshPubKey []byte `protobuf:"bytes,1,opt,name=sshPubKey,proto3" json:"sshPubKey,omitempty"`
// wgPubKey represents a public WireGuard key of the peer. Can be absent.
WgPubKey []byte `protobuf:"bytes,2,opt,name=wgPubKey,proto3" json:"wgPubKey,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PeerKeys) Reset() { *m = PeerKeys{} }
func (m *PeerKeys) String() string { return proto.CompactTextString(m) }
func (*PeerKeys) ProtoMessage() {}
func (*PeerKeys) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{4}
}
func (m *PeerKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PeerKeys.Unmarshal(m, b)
}
func (m *PeerKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PeerKeys.Marshal(b, m, deterministic)
}
func (m *PeerKeys) XXX_Merge(src proto.Message) {
xxx_messageInfo_PeerKeys.Merge(m, src)
}
func (m *PeerKeys) XXX_Size() int {
return xxx_messageInfo_PeerKeys.Size(m)
}
func (m *PeerKeys) XXX_DiscardUnknown() {
xxx_messageInfo_PeerKeys.DiscardUnknown(m)
}
var xxx_messageInfo_PeerKeys proto.InternalMessageInfo
func (m *PeerKeys) GetSshPubKey() []byte {
if m != nil {
return m.SshPubKey
}
return nil
}
func (m *PeerKeys) GetWgPubKey() []byte {
if m != nil {
return m.WgPubKey
}
return nil
}
// Environment is part of the PeerSystemMeta and describes the environment the agent is running in.
type Environment struct {
// cloud is the cloud provider the agent is running in if applicable.
Cloud string `protobuf:"bytes,1,opt,name=cloud,proto3" json:"cloud,omitempty"`
// platform is the platform the agent is running on if applicable.
Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Environment) Reset() { *m = Environment{} }
func (m *Environment) String() string { return proto.CompactTextString(m) }
func (*Environment) ProtoMessage() {}
func (*Environment) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{5}
}
func (m *Environment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Environment.Unmarshal(m, b)
}
func (m *Environment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Environment.Marshal(b, m, deterministic)
}
func (m *Environment) XXX_Merge(src proto.Message) {
xxx_messageInfo_Environment.Merge(m, src)
}
func (m *Environment) XXX_Size() int {
return xxx_messageInfo_Environment.Size(m)
}
func (m *Environment) XXX_DiscardUnknown() {
xxx_messageInfo_Environment.DiscardUnknown(m)
}
var xxx_messageInfo_Environment proto.InternalMessageInfo
func (m *Environment) GetCloud() string {
if m != nil {
return m.Cloud
}
return ""
}
func (m *Environment) GetPlatform() string {
if m != nil {
return m.Platform
}
return ""
}
// PeerSystemMeta is machine meta data like OS and version.
type PeerSystemMeta struct {
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
GoOS string `protobuf:"bytes,2,opt,name=goOS,proto3" json:"goOS,omitempty"`
Kernel string `protobuf:"bytes,3,opt,name=kernel,proto3" json:"kernel,omitempty"`
Core string `protobuf:"bytes,4,opt,name=core,proto3" json:"core,omitempty"`
Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"`
OS string `protobuf:"bytes,6,opt,name=OS,proto3" json:"OS,omitempty"`
WiretrusteeVersion string `protobuf:"bytes,7,opt,name=wiretrusteeVersion,proto3" json:"wiretrusteeVersion,omitempty"`
UiVersion string `protobuf:"bytes,8,opt,name=uiVersion,proto3" json:"uiVersion,omitempty"`
KernelVersion string `protobuf:"bytes,9,opt,name=kernelVersion,proto3" json:"kernelVersion,omitempty"`
OSVersion string `protobuf:"bytes,10,opt,name=OSVersion,proto3" json:"OSVersion,omitempty"`
NetworkAddresses []*NetworkAddress `protobuf:"bytes,11,rep,name=networkAddresses,proto3" json:"networkAddresses,omitempty"`
SysSerialNumber string `protobuf:"bytes,12,opt,name=sysSerialNumber,proto3" json:"sysSerialNumber,omitempty"`
SysProductName string `protobuf:"bytes,13,opt,name=sysProductName,proto3" json:"sysProductName,omitempty"`
SysManufacturer string `protobuf:"bytes,14,opt,name=sysManufacturer,proto3" json:"sysManufacturer,omitempty"`
Environment *Environment `protobuf:"bytes,15,opt,name=environment,proto3" json:"environment,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PeerSystemMeta) Reset() { *m = PeerSystemMeta{} }
func (m *PeerSystemMeta) String() string { return proto.CompactTextString(m) }
func (*PeerSystemMeta) ProtoMessage() {}
func (*PeerSystemMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{6}
}
func (m *PeerSystemMeta) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PeerSystemMeta.Unmarshal(m, b)
}
func (m *PeerSystemMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PeerSystemMeta.Marshal(b, m, deterministic)
}
func (m *PeerSystemMeta) XXX_Merge(src proto.Message) {
xxx_messageInfo_PeerSystemMeta.Merge(m, src)
}
func (m *PeerSystemMeta) XXX_Size() int {
return xxx_messageInfo_PeerSystemMeta.Size(m)
}
func (m *PeerSystemMeta) XXX_DiscardUnknown() {
xxx_messageInfo_PeerSystemMeta.DiscardUnknown(m)
}
var xxx_messageInfo_PeerSystemMeta proto.InternalMessageInfo
func (m *PeerSystemMeta) GetHostname() string {
if m != nil {
return m.Hostname
}
return ""
}
func (m *PeerSystemMeta) GetGoOS() string {
if m != nil {
return m.GoOS
}
return ""
}
func (m *PeerSystemMeta) GetKernel() string {
if m != nil {
return m.Kernel
}
return ""
}
func (m *PeerSystemMeta) GetCore() string {
if m != nil {
return m.Core
}
return ""
}
func (m *PeerSystemMeta) GetPlatform() string {
if m != nil {
return m.Platform
}
return ""
}
func (m *PeerSystemMeta) GetOS() string {
if m != nil {
return m.OS
}
return ""
}
func (m *PeerSystemMeta) GetWiretrusteeVersion() string {
if m != nil {
return m.WiretrusteeVersion
}
return ""
}
func (m *PeerSystemMeta) GetUiVersion() string {
if m != nil {
return m.UiVersion
}
return ""
}
func (m *PeerSystemMeta) GetKernelVersion() string {
if m != nil {
return m.KernelVersion
}
return ""
}
func (m *PeerSystemMeta) GetOSVersion() string {
if m != nil {
return m.OSVersion
}
return ""
}
func (m *PeerSystemMeta) GetNetworkAddresses() []*NetworkAddress {
if m != nil {
return m.NetworkAddresses
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return nil
}
func (m *PeerSystemMeta) GetSysSerialNumber() string {
if m != nil {
return m.SysSerialNumber
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return ""
}
func (m *PeerSystemMeta) GetSysProductName() string {
if m != nil {
return m.SysProductName
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return ""
}
func (m *PeerSystemMeta) GetSysManufacturer() string {
if m != nil {
return m.SysManufacturer
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return ""
}
func (m *PeerSystemMeta) GetEnvironment() *Environment {
if m != nil {
return m.Environment
}
return nil
}
type LoginResponse struct {
// Global config
WiretrusteeConfig *WiretrusteeConfig `protobuf:"bytes,1,opt,name=wiretrusteeConfig,proto3" json:"wiretrusteeConfig,omitempty"`
// Peer local config
PeerConfig *PeerConfig `protobuf:"bytes,2,opt,name=peerConfig,proto3" json:"peerConfig,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LoginResponse) Reset() { *m = LoginResponse{} }
func (m *LoginResponse) String() string { return proto.CompactTextString(m) }
func (*LoginResponse) ProtoMessage() {}
func (*LoginResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{7}
}
func (m *LoginResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoginResponse.Unmarshal(m, b)
}
func (m *LoginResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LoginResponse.Marshal(b, m, deterministic)
}
func (m *LoginResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_LoginResponse.Merge(m, src)
}
func (m *LoginResponse) XXX_Size() int {
return xxx_messageInfo_LoginResponse.Size(m)
}
func (m *LoginResponse) XXX_DiscardUnknown() {
xxx_messageInfo_LoginResponse.DiscardUnknown(m)
}
var xxx_messageInfo_LoginResponse proto.InternalMessageInfo
func (m *LoginResponse) GetWiretrusteeConfig() *WiretrusteeConfig {
if m != nil {
return m.WiretrusteeConfig
}
return nil
}
func (m *LoginResponse) GetPeerConfig() *PeerConfig {
if m != nil {
return m.PeerConfig
}
return nil
}
type ServerKeyResponse struct {
// Server's Wireguard public key
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Key expiration timestamp after which the key should be fetched again by the client
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expiresAt,proto3" json:"expiresAt,omitempty"`
// Version of the Wiretrustee Management Service protocol
Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ServerKeyResponse) Reset() { *m = ServerKeyResponse{} }
func (m *ServerKeyResponse) String() string { return proto.CompactTextString(m) }
func (*ServerKeyResponse) ProtoMessage() {}
func (*ServerKeyResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{8}
}
func (m *ServerKeyResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServerKeyResponse.Unmarshal(m, b)
}
func (m *ServerKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ServerKeyResponse.Marshal(b, m, deterministic)
}
func (m *ServerKeyResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ServerKeyResponse.Merge(m, src)
}
func (m *ServerKeyResponse) XXX_Size() int {
return xxx_messageInfo_ServerKeyResponse.Size(m)
}
func (m *ServerKeyResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ServerKeyResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ServerKeyResponse proto.InternalMessageInfo
func (m *ServerKeyResponse) GetKey() string {
if m != nil {
return m.Key
}
return ""
}
func (m *ServerKeyResponse) GetExpiresAt() *timestamppb.Timestamp {
if m != nil {
return m.ExpiresAt
}
return nil
}
func (m *ServerKeyResponse) GetVersion() int32 {
if m != nil {
return m.Version
}
return 0
}
2021-07-20 18:09:26 +02:00
type Empty struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Empty) Reset() { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{9}
}
func (m *Empty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Empty.Unmarshal(m, b)
}
func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
}
func (m *Empty) XXX_Merge(src proto.Message) {
xxx_messageInfo_Empty.Merge(m, src)
}
func (m *Empty) XXX_Size() int {
return xxx_messageInfo_Empty.Size(m)
}
func (m *Empty) XXX_DiscardUnknown() {
xxx_messageInfo_Empty.DiscardUnknown(m)
2021-07-20 18:09:26 +02:00
}
var xxx_messageInfo_Empty proto.InternalMessageInfo
// WiretrusteeConfig is a common configuration of any Wiretrustee peer. It contains STUN, TURN, Signal and Management servers configurations
type WiretrusteeConfig struct {
// a list of STUN servers
Stuns []*HostConfig `protobuf:"bytes,1,rep,name=stuns,proto3" json:"stuns,omitempty"`
// a list of TURN servers
Turns []*ProtectedHostConfig `protobuf:"bytes,2,rep,name=turns,proto3" json:"turns,omitempty"`
// a Signal server config
Signal *HostConfig `protobuf:"bytes,3,opt,name=signal,proto3" json:"signal,omitempty"`
RelayAddress string `protobuf:"bytes,4,opt,name=RelayAddress,proto3" json:"RelayAddress,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *WiretrusteeConfig) Reset() { *m = WiretrusteeConfig{} }
func (m *WiretrusteeConfig) String() string { return proto.CompactTextString(m) }
func (*WiretrusteeConfig) ProtoMessage() {}
func (*WiretrusteeConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{10}
}
func (m *WiretrusteeConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WiretrusteeConfig.Unmarshal(m, b)
}
func (m *WiretrusteeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_WiretrusteeConfig.Marshal(b, m, deterministic)
}
func (m *WiretrusteeConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_WiretrusteeConfig.Merge(m, src)
}
func (m *WiretrusteeConfig) XXX_Size() int {
return xxx_messageInfo_WiretrusteeConfig.Size(m)
}
func (m *WiretrusteeConfig) XXX_DiscardUnknown() {
xxx_messageInfo_WiretrusteeConfig.DiscardUnknown(m)
}
var xxx_messageInfo_WiretrusteeConfig proto.InternalMessageInfo
func (m *WiretrusteeConfig) GetStuns() []*HostConfig {
if m != nil {
return m.Stuns
}
return nil
}
func (m *WiretrusteeConfig) GetTurns() []*ProtectedHostConfig {
if m != nil {
return m.Turns
}
return nil
}
func (m *WiretrusteeConfig) GetSignal() *HostConfig {
if m != nil {
return m.Signal
}
return nil
}
func (m *WiretrusteeConfig) GetRelayAddress() string {
if m != nil {
return m.RelayAddress
}
return ""
}
// HostConfig describes connection properties of some server (e.g. STUN, Signal, Management)
type HostConfig struct {
// URI of the resource e.g. turns://stun.wiretrustee.com:4430 or signal.wiretrustee.com:10000
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
Protocol HostConfig_Protocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=management.HostConfig_Protocol" json:"protocol,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HostConfig) Reset() { *m = HostConfig{} }
func (m *HostConfig) String() string { return proto.CompactTextString(m) }
func (*HostConfig) ProtoMessage() {}
func (*HostConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{11}
}
func (m *HostConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HostConfig.Unmarshal(m, b)
}
func (m *HostConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HostConfig.Marshal(b, m, deterministic)
}
func (m *HostConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_HostConfig.Merge(m, src)
}
func (m *HostConfig) XXX_Size() int {
return xxx_messageInfo_HostConfig.Size(m)
}
func (m *HostConfig) XXX_DiscardUnknown() {
xxx_messageInfo_HostConfig.DiscardUnknown(m)
}
var xxx_messageInfo_HostConfig proto.InternalMessageInfo
func (m *HostConfig) GetUri() string {
if m != nil {
return m.Uri
}
return ""
}
func (m *HostConfig) GetProtocol() HostConfig_Protocol {
if m != nil {
return m.Protocol
}
return HostConfig_UDP
}
// ProtectedHostConfig is similar to HostConfig but has additional user and password
// Mostly used for TURN servers
type ProtectedHostConfig struct {
HostConfig *HostConfig `protobuf:"bytes,1,opt,name=hostConfig,proto3" json:"hostConfig,omitempty"`
User string `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProtectedHostConfig) Reset() { *m = ProtectedHostConfig{} }
func (m *ProtectedHostConfig) String() string { return proto.CompactTextString(m) }
func (*ProtectedHostConfig) ProtoMessage() {}
func (*ProtectedHostConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{12}
}
func (m *ProtectedHostConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProtectedHostConfig.Unmarshal(m, b)
}
func (m *ProtectedHostConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProtectedHostConfig.Marshal(b, m, deterministic)
}
func (m *ProtectedHostConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProtectedHostConfig.Merge(m, src)
}
func (m *ProtectedHostConfig) XXX_Size() int {
return xxx_messageInfo_ProtectedHostConfig.Size(m)
}
func (m *ProtectedHostConfig) XXX_DiscardUnknown() {
xxx_messageInfo_ProtectedHostConfig.DiscardUnknown(m)
}
var xxx_messageInfo_ProtectedHostConfig proto.InternalMessageInfo
func (m *ProtectedHostConfig) GetHostConfig() *HostConfig {
if m != nil {
return m.HostConfig
}
return nil
}
func (m *ProtectedHostConfig) GetUser() string {
if m != nil {
return m.User
}
return ""
}
func (m *ProtectedHostConfig) GetPassword() string {
if m != nil {
return m.Password
}
return ""
}
// PeerConfig represents a configuration of a "our" peer.
// The properties are used to configure local Wireguard
type PeerConfig struct {
// Peer's virtual IP address within the Wiretrustee VPN (a Wireguard address config)
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Wiretrustee DNS server (a Wireguard DNS config)
Dns string `protobuf:"bytes,2,opt,name=dns,proto3" json:"dns,omitempty"`
// SSHConfig of the peer.
SshConfig *SSHConfig `protobuf:"bytes,3,opt,name=sshConfig,proto3" json:"sshConfig,omitempty"`
// Peer fully qualified domain name
Fqdn string `protobuf:"bytes,4,opt,name=fqdn,proto3" json:"fqdn,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PeerConfig) Reset() { *m = PeerConfig{} }
func (m *PeerConfig) String() string { return proto.CompactTextString(m) }
func (*PeerConfig) ProtoMessage() {}
func (*PeerConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{13}
}
func (m *PeerConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PeerConfig.Unmarshal(m, b)
}
func (m *PeerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PeerConfig.Marshal(b, m, deterministic)
}
func (m *PeerConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_PeerConfig.Merge(m, src)
}
func (m *PeerConfig) XXX_Size() int {
return xxx_messageInfo_PeerConfig.Size(m)
}
func (m *PeerConfig) XXX_DiscardUnknown() {
xxx_messageInfo_PeerConfig.DiscardUnknown(m)
}
var xxx_messageInfo_PeerConfig proto.InternalMessageInfo
func (m *PeerConfig) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *PeerConfig) GetDns() string {
if m != nil {
return m.Dns
}
return ""
}
func (m *PeerConfig) GetSshConfig() *SSHConfig {
if m != nil {
return m.SshConfig
}
return nil
}
func (m *PeerConfig) GetFqdn() string {
if m != nil {
return m.Fqdn
}
return ""
}
// NetworkMap represents a network state of the peer with the corresponding configuration parameters to establish peer-to-peer connections
type NetworkMap struct {
// Serial is an ID of the network state to be used by clients to order updates.
// The larger the Serial the newer the configuration.
// E.g. the client app should keep track of this id locally and discard all the configurations with a lower value
Serial uint64 `protobuf:"varint,1,opt,name=Serial,proto3" json:"Serial,omitempty"`
// PeerConfig represents configuration of a peer
PeerConfig *PeerConfig `protobuf:"bytes,2,opt,name=peerConfig,proto3" json:"peerConfig,omitempty"`
// RemotePeerConfig represents a list of remote peers that the receiver can connect to
RemotePeers []*RemotePeerConfig `protobuf:"bytes,3,rep,name=remotePeers,proto3" json:"remotePeers,omitempty"`
// Indicates whether remotePeers array is empty or not to bypass protobuf null and empty array equality.
RemotePeersIsEmpty bool `protobuf:"varint,4,opt,name=remotePeersIsEmpty,proto3" json:"remotePeersIsEmpty,omitempty"`
// List of routes to be applied
Routes []*Route `protobuf:"bytes,5,rep,name=Routes,proto3" json:"Routes,omitempty"`
// DNS config to be applied
DNSConfig *DNSConfig `protobuf:"bytes,6,opt,name=DNSConfig,proto3" json:"DNSConfig,omitempty"`
// RemotePeerConfig represents a list of remote peers that the receiver can connect to
OfflinePeers []*RemotePeerConfig `protobuf:"bytes,7,rep,name=offlinePeers,proto3" json:"offlinePeers,omitempty"`
// FirewallRule represents a list of firewall rules to be applied to peer
FirewallRules []*FirewallRule `protobuf:"bytes,8,rep,name=FirewallRules,proto3" json:"FirewallRules,omitempty"`
// firewallRulesIsEmpty indicates whether FirewallRule array is empty or not to bypass protobuf null and empty array equality.
FirewallRulesIsEmpty bool `protobuf:"varint,9,opt,name=firewallRulesIsEmpty,proto3" json:"firewallRulesIsEmpty,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *NetworkMap) Reset() { *m = NetworkMap{} }
func (m *NetworkMap) String() string { return proto.CompactTextString(m) }
func (*NetworkMap) ProtoMessage() {}
func (*NetworkMap) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{14}
}
func (m *NetworkMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkMap.Unmarshal(m, b)
}
func (m *NetworkMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NetworkMap.Marshal(b, m, deterministic)
}
func (m *NetworkMap) XXX_Merge(src proto.Message) {
xxx_messageInfo_NetworkMap.Merge(m, src)
}
func (m *NetworkMap) XXX_Size() int {
return xxx_messageInfo_NetworkMap.Size(m)
}
func (m *NetworkMap) XXX_DiscardUnknown() {
xxx_messageInfo_NetworkMap.DiscardUnknown(m)
}
var xxx_messageInfo_NetworkMap proto.InternalMessageInfo
func (m *NetworkMap) GetSerial() uint64 {
if m != nil {
return m.Serial
}
return 0
}
func (m *NetworkMap) GetPeerConfig() *PeerConfig {
if m != nil {
return m.PeerConfig
}
return nil
}
func (m *NetworkMap) GetRemotePeers() []*RemotePeerConfig {
if m != nil {
return m.RemotePeers
}
return nil
}
func (m *NetworkMap) GetRemotePeersIsEmpty() bool {
if m != nil {
return m.RemotePeersIsEmpty
}
return false
}
func (m *NetworkMap) GetRoutes() []*Route {
if m != nil {
return m.Routes
}
return nil
}
func (m *NetworkMap) GetDNSConfig() *DNSConfig {
if m != nil {
return m.DNSConfig
}
return nil
}
func (m *NetworkMap) GetOfflinePeers() []*RemotePeerConfig {
if m != nil {
return m.OfflinePeers
}
return nil
}
func (m *NetworkMap) GetFirewallRules() []*FirewallRule {
if m != nil {
return m.FirewallRules
}
return nil
}
func (m *NetworkMap) GetFirewallRulesIsEmpty() bool {
if m != nil {
return m.FirewallRulesIsEmpty
}
return false
}
// RemotePeerConfig represents a configuration of a remote peer.
// The properties are used to configure WireGuard Peers sections
type RemotePeerConfig struct {
// A WireGuard public key of a remote peer
WgPubKey string `protobuf:"bytes,1,opt,name=wgPubKey,proto3" json:"wgPubKey,omitempty"`
// WireGuard allowed IPs of a remote peer e.g. [10.30.30.1/32]
AllowedIps []string `protobuf:"bytes,2,rep,name=allowedIps,proto3" json:"allowedIps,omitempty"`
// SSHConfig is a SSH config of the remote peer. SSHConfig.sshPubKey should be ignored because peer knows it's SSH key.
SshConfig *SSHConfig `protobuf:"bytes,3,opt,name=sshConfig,proto3" json:"sshConfig,omitempty"`
// Peer fully qualified domain name
Fqdn string `protobuf:"bytes,4,opt,name=fqdn,proto3" json:"fqdn,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RemotePeerConfig) Reset() { *m = RemotePeerConfig{} }
func (m *RemotePeerConfig) String() string { return proto.CompactTextString(m) }
func (*RemotePeerConfig) ProtoMessage() {}
func (*RemotePeerConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{15}
}
func (m *RemotePeerConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemotePeerConfig.Unmarshal(m, b)
}
func (m *RemotePeerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RemotePeerConfig.Marshal(b, m, deterministic)
}
func (m *RemotePeerConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_RemotePeerConfig.Merge(m, src)
}
func (m *RemotePeerConfig) XXX_Size() int {
return xxx_messageInfo_RemotePeerConfig.Size(m)
}
func (m *RemotePeerConfig) XXX_DiscardUnknown() {
xxx_messageInfo_RemotePeerConfig.DiscardUnknown(m)
}
var xxx_messageInfo_RemotePeerConfig proto.InternalMessageInfo
func (m *RemotePeerConfig) GetWgPubKey() string {
if m != nil {
return m.WgPubKey
}
return ""
}
func (m *RemotePeerConfig) GetAllowedIps() []string {
if m != nil {
return m.AllowedIps
}
return nil
}
func (m *RemotePeerConfig) GetSshConfig() *SSHConfig {
if m != nil {
return m.SshConfig
}
return nil
}
func (m *RemotePeerConfig) GetFqdn() string {
if m != nil {
return m.Fqdn
}
return ""
}
// SSHConfig represents SSH configurations of a peer.
type SSHConfig struct {
// sshEnabled indicates whether a SSH server is enabled on this peer
SshEnabled bool `protobuf:"varint,1,opt,name=sshEnabled,proto3" json:"sshEnabled,omitempty"`
// sshPubKey is a SSH public key of a peer to be added to authorized_hosts.
// This property should be ignore if SSHConfig comes from PeerConfig.
SshPubKey []byte `protobuf:"bytes,2,opt,name=sshPubKey,proto3" json:"sshPubKey,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SSHConfig) Reset() { *m = SSHConfig{} }
func (m *SSHConfig) String() string { return proto.CompactTextString(m) }
func (*SSHConfig) ProtoMessage() {}
func (*SSHConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{16}
}
func (m *SSHConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SSHConfig.Unmarshal(m, b)
}
func (m *SSHConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SSHConfig.Marshal(b, m, deterministic)
}
func (m *SSHConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_SSHConfig.Merge(m, src)
}
func (m *SSHConfig) XXX_Size() int {
return xxx_messageInfo_SSHConfig.Size(m)
}
func (m *SSHConfig) XXX_DiscardUnknown() {
xxx_messageInfo_SSHConfig.DiscardUnknown(m)
}
var xxx_messageInfo_SSHConfig proto.InternalMessageInfo
func (m *SSHConfig) GetSshEnabled() bool {
if m != nil {
return m.SshEnabled
}
return false
}
func (m *SSHConfig) GetSshPubKey() []byte {
if m != nil {
return m.SshPubKey
}
return nil
}
// DeviceAuthorizationFlowRequest empty struct for future expansion
type DeviceAuthorizationFlowRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DeviceAuthorizationFlowRequest) Reset() { *m = DeviceAuthorizationFlowRequest{} }
func (m *DeviceAuthorizationFlowRequest) String() string { return proto.CompactTextString(m) }
func (*DeviceAuthorizationFlowRequest) ProtoMessage() {}
func (*DeviceAuthorizationFlowRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{17}
}
func (m *DeviceAuthorizationFlowRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeviceAuthorizationFlowRequest.Unmarshal(m, b)
}
func (m *DeviceAuthorizationFlowRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeviceAuthorizationFlowRequest.Marshal(b, m, deterministic)
}
func (m *DeviceAuthorizationFlowRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeviceAuthorizationFlowRequest.Merge(m, src)
}
func (m *DeviceAuthorizationFlowRequest) XXX_Size() int {
return xxx_messageInfo_DeviceAuthorizationFlowRequest.Size(m)
}
func (m *DeviceAuthorizationFlowRequest) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceAuthorizationFlowRequest.DiscardUnknown(m)
}
var xxx_messageInfo_DeviceAuthorizationFlowRequest proto.InternalMessageInfo
// DeviceAuthorizationFlow represents Device Authorization Flow information
// that can be used by the client to login initiate a Oauth 2.0 device authorization grant flow
// see https://datatracker.ietf.org/doc/html/rfc8628
type DeviceAuthorizationFlow struct {
// An IDP provider , (eg. Auth0)
Provider DeviceAuthorizationFlowProvider `protobuf:"varint,1,opt,name=Provider,proto3,enum=management.DeviceAuthorizationFlowProvider" json:"Provider,omitempty"`
ProviderConfig *ProviderConfig `protobuf:"bytes,2,opt,name=ProviderConfig,proto3" json:"ProviderConfig,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DeviceAuthorizationFlow) Reset() { *m = DeviceAuthorizationFlow{} }
func (m *DeviceAuthorizationFlow) String() string { return proto.CompactTextString(m) }
func (*DeviceAuthorizationFlow) ProtoMessage() {}
func (*DeviceAuthorizationFlow) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{18}
}
func (m *DeviceAuthorizationFlow) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeviceAuthorizationFlow.Unmarshal(m, b)
}
func (m *DeviceAuthorizationFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeviceAuthorizationFlow.Marshal(b, m, deterministic)
}
func (m *DeviceAuthorizationFlow) XXX_Merge(src proto.Message) {
xxx_messageInfo_DeviceAuthorizationFlow.Merge(m, src)
}
func (m *DeviceAuthorizationFlow) XXX_Size() int {
return xxx_messageInfo_DeviceAuthorizationFlow.Size(m)
}
func (m *DeviceAuthorizationFlow) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceAuthorizationFlow.DiscardUnknown(m)
}
var xxx_messageInfo_DeviceAuthorizationFlow proto.InternalMessageInfo
func (m *DeviceAuthorizationFlow) GetProvider() DeviceAuthorizationFlowProvider {
if m != nil {
return m.Provider
}
return DeviceAuthorizationFlow_HOSTED
}
func (m *DeviceAuthorizationFlow) GetProviderConfig() *ProviderConfig {
if m != nil {
return m.ProviderConfig
}
return nil
}
// PKCEAuthorizationFlowRequest empty struct for future expansion
type PKCEAuthorizationFlowRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PKCEAuthorizationFlowRequest) Reset() { *m = PKCEAuthorizationFlowRequest{} }
func (m *PKCEAuthorizationFlowRequest) String() string { return proto.CompactTextString(m) }
func (*PKCEAuthorizationFlowRequest) ProtoMessage() {}
func (*PKCEAuthorizationFlowRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{19}
}
func (m *PKCEAuthorizationFlowRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PKCEAuthorizationFlowRequest.Unmarshal(m, b)
}
func (m *PKCEAuthorizationFlowRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PKCEAuthorizationFlowRequest.Marshal(b, m, deterministic)
}
func (m *PKCEAuthorizationFlowRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_PKCEAuthorizationFlowRequest.Merge(m, src)
}
func (m *PKCEAuthorizationFlowRequest) XXX_Size() int {
return xxx_messageInfo_PKCEAuthorizationFlowRequest.Size(m)
}
func (m *PKCEAuthorizationFlowRequest) XXX_DiscardUnknown() {
xxx_messageInfo_PKCEAuthorizationFlowRequest.DiscardUnknown(m)
}
var xxx_messageInfo_PKCEAuthorizationFlowRequest proto.InternalMessageInfo
// PKCEAuthorizationFlow represents Authorization Code Flow information
// that can be used by the client to login initiate a Oauth 2.0 authorization code grant flow
// with Proof Key for Code Exchange (PKCE). See https://datatracker.ietf.org/doc/html/rfc7636
type PKCEAuthorizationFlow struct {
ProviderConfig *ProviderConfig `protobuf:"bytes,1,opt,name=ProviderConfig,proto3" json:"ProviderConfig,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PKCEAuthorizationFlow) Reset() { *m = PKCEAuthorizationFlow{} }
func (m *PKCEAuthorizationFlow) String() string { return proto.CompactTextString(m) }
func (*PKCEAuthorizationFlow) ProtoMessage() {}
func (*PKCEAuthorizationFlow) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{20}
}
func (m *PKCEAuthorizationFlow) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PKCEAuthorizationFlow.Unmarshal(m, b)
}
func (m *PKCEAuthorizationFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PKCEAuthorizationFlow.Marshal(b, m, deterministic)
}
func (m *PKCEAuthorizationFlow) XXX_Merge(src proto.Message) {
xxx_messageInfo_PKCEAuthorizationFlow.Merge(m, src)
}
func (m *PKCEAuthorizationFlow) XXX_Size() int {
return xxx_messageInfo_PKCEAuthorizationFlow.Size(m)
}
func (m *PKCEAuthorizationFlow) XXX_DiscardUnknown() {
xxx_messageInfo_PKCEAuthorizationFlow.DiscardUnknown(m)
}
var xxx_messageInfo_PKCEAuthorizationFlow proto.InternalMessageInfo
func (m *PKCEAuthorizationFlow) GetProviderConfig() *ProviderConfig {
if m != nil {
return m.ProviderConfig
}
return nil
}
// ProviderConfig has all attributes needed to initiate a device/pkce authorization flow
type ProviderConfig struct {
// An IDP application client id
ClientID string `protobuf:"bytes,1,opt,name=ClientID,proto3" json:"ClientID,omitempty"`
// An IDP application client secret
ClientSecret string `protobuf:"bytes,2,opt,name=ClientSecret,proto3" json:"ClientSecret,omitempty"`
// An IDP API domain
// Deprecated. Use a DeviceAuthEndpoint and TokenEndpoint
Domain string `protobuf:"bytes,3,opt,name=Domain,proto3" json:"Domain,omitempty"`
// An Audience for validation
Audience string `protobuf:"bytes,4,opt,name=Audience,proto3" json:"Audience,omitempty"`
// DeviceAuthEndpoint is an endpoint to request device authentication code.
DeviceAuthEndpoint string `protobuf:"bytes,5,opt,name=DeviceAuthEndpoint,proto3" json:"DeviceAuthEndpoint,omitempty"`
// TokenEndpoint is an endpoint to request auth token.
TokenEndpoint string `protobuf:"bytes,6,opt,name=TokenEndpoint,proto3" json:"TokenEndpoint,omitempty"`
// Scopes provides the scopes to be included in the token request
Scope string `protobuf:"bytes,7,opt,name=Scope,proto3" json:"Scope,omitempty"`
// UseIDToken indicates if the id token should be used for authentication
UseIDToken bool `protobuf:"varint,8,opt,name=UseIDToken,proto3" json:"UseIDToken,omitempty"`
// AuthorizationEndpoint is the endpoint of an IDP manager where clients can obtain authorization code.
AuthorizationEndpoint string `protobuf:"bytes,9,opt,name=AuthorizationEndpoint,proto3" json:"AuthorizationEndpoint,omitempty"`
// RedirectURLs handles authorization code from IDP manager
RedirectURLs []string `protobuf:"bytes,10,rep,name=RedirectURLs,proto3" json:"RedirectURLs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProviderConfig) Reset() { *m = ProviderConfig{} }
func (m *ProviderConfig) String() string { return proto.CompactTextString(m) }
func (*ProviderConfig) ProtoMessage() {}
func (*ProviderConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{21}
}
func (m *ProviderConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProviderConfig.Unmarshal(m, b)
}
func (m *ProviderConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProviderConfig.Marshal(b, m, deterministic)
}
func (m *ProviderConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProviderConfig.Merge(m, src)
}
func (m *ProviderConfig) XXX_Size() int {
return xxx_messageInfo_ProviderConfig.Size(m)
}
func (m *ProviderConfig) XXX_DiscardUnknown() {
xxx_messageInfo_ProviderConfig.DiscardUnknown(m)
}
var xxx_messageInfo_ProviderConfig proto.InternalMessageInfo
func (m *ProviderConfig) GetClientID() string {
if m != nil {
return m.ClientID
}
return ""
}
func (m *ProviderConfig) GetClientSecret() string {
if m != nil {
return m.ClientSecret
}
return ""
}
func (m *ProviderConfig) GetDomain() string {
if m != nil {
return m.Domain
}
return ""
}
func (m *ProviderConfig) GetAudience() string {
if m != nil {
return m.Audience
}
return ""
}
func (m *ProviderConfig) GetDeviceAuthEndpoint() string {
if m != nil {
return m.DeviceAuthEndpoint
}
return ""
}
func (m *ProviderConfig) GetTokenEndpoint() string {
if m != nil {
return m.TokenEndpoint
}
return ""
}
func (m *ProviderConfig) GetScope() string {
if m != nil {
return m.Scope
}
return ""
}
func (m *ProviderConfig) GetUseIDToken() bool {
if m != nil {
return m.UseIDToken
}
return false
}
func (m *ProviderConfig) GetAuthorizationEndpoint() string {
if m != nil {
return m.AuthorizationEndpoint
}
return ""
}
func (m *ProviderConfig) GetRedirectURLs() []string {
if m != nil {
return m.RedirectURLs
}
return nil
}
// Route represents a route.Route object
type Route struct {
ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
Network string `protobuf:"bytes,2,opt,name=Network,proto3" json:"Network,omitempty"`
NetworkType int64 `protobuf:"varint,3,opt,name=NetworkType,proto3" json:"NetworkType,omitempty"`
Peer string `protobuf:"bytes,4,opt,name=Peer,proto3" json:"Peer,omitempty"`
Metric int64 `protobuf:"varint,5,opt,name=Metric,proto3" json:"Metric,omitempty"`
Masquerade bool `protobuf:"varint,6,opt,name=Masquerade,proto3" json:"Masquerade,omitempty"`
NetID string `protobuf:"bytes,7,opt,name=NetID,proto3" json:"NetID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{22}
}
func (m *Route) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Route.Unmarshal(m, b)
}
func (m *Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Route.Marshal(b, m, deterministic)
}
func (m *Route) XXX_Merge(src proto.Message) {
xxx_messageInfo_Route.Merge(m, src)
}
func (m *Route) XXX_Size() int {
return xxx_messageInfo_Route.Size(m)
}
func (m *Route) XXX_DiscardUnknown() {
xxx_messageInfo_Route.DiscardUnknown(m)
}
var xxx_messageInfo_Route proto.InternalMessageInfo
func (m *Route) GetID() string {
if m != nil {
return m.ID
}
return ""
}
func (m *Route) GetNetwork() string {
if m != nil {
return m.Network
}
return ""
}
func (m *Route) GetNetworkType() int64 {
if m != nil {
return m.NetworkType
}
return 0
}
func (m *Route) GetPeer() string {
if m != nil {
return m.Peer
}
return ""
}
func (m *Route) GetMetric() int64 {
if m != nil {
return m.Metric
}
return 0
}
func (m *Route) GetMasquerade() bool {
if m != nil {
return m.Masquerade
}
return false
}
func (m *Route) GetNetID() string {
if m != nil {
return m.NetID
}
return ""
}
// DNSConfig represents a dns.Update
type DNSConfig struct {
ServiceEnable bool `protobuf:"varint,1,opt,name=ServiceEnable,proto3" json:"ServiceEnable,omitempty"`
NameServerGroups []*NameServerGroup `protobuf:"bytes,2,rep,name=NameServerGroups,proto3" json:"NameServerGroups,omitempty"`
CustomZones []*CustomZone `protobuf:"bytes,3,rep,name=CustomZones,proto3" json:"CustomZones,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DNSConfig) Reset() { *m = DNSConfig{} }
func (m *DNSConfig) String() string { return proto.CompactTextString(m) }
func (*DNSConfig) ProtoMessage() {}
func (*DNSConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{23}
}
func (m *DNSConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DNSConfig.Unmarshal(m, b)
}
func (m *DNSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DNSConfig.Marshal(b, m, deterministic)
}
func (m *DNSConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_DNSConfig.Merge(m, src)
}
func (m *DNSConfig) XXX_Size() int {
return xxx_messageInfo_DNSConfig.Size(m)
}
func (m *DNSConfig) XXX_DiscardUnknown() {
xxx_messageInfo_DNSConfig.DiscardUnknown(m)
}
var xxx_messageInfo_DNSConfig proto.InternalMessageInfo
func (m *DNSConfig) GetServiceEnable() bool {
if m != nil {
return m.ServiceEnable
}
return false
}
func (m *DNSConfig) GetNameServerGroups() []*NameServerGroup {
if m != nil {
return m.NameServerGroups
}
return nil
}
func (m *DNSConfig) GetCustomZones() []*CustomZone {
if m != nil {
return m.CustomZones
}
return nil
}
// CustomZone represents a dns.CustomZone
type CustomZone struct {
Domain string `protobuf:"bytes,1,opt,name=Domain,proto3" json:"Domain,omitempty"`
Records []*SimpleRecord `protobuf:"bytes,2,rep,name=Records,proto3" json:"Records,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CustomZone) Reset() { *m = CustomZone{} }
func (m *CustomZone) String() string { return proto.CompactTextString(m) }
func (*CustomZone) ProtoMessage() {}
func (*CustomZone) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{24}
}
func (m *CustomZone) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomZone.Unmarshal(m, b)
}
func (m *CustomZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomZone.Marshal(b, m, deterministic)
}
func (m *CustomZone) XXX_Merge(src proto.Message) {
xxx_messageInfo_CustomZone.Merge(m, src)
}
func (m *CustomZone) XXX_Size() int {
return xxx_messageInfo_CustomZone.Size(m)
}
func (m *CustomZone) XXX_DiscardUnknown() {
xxx_messageInfo_CustomZone.DiscardUnknown(m)
}
var xxx_messageInfo_CustomZone proto.InternalMessageInfo
func (m *CustomZone) GetDomain() string {
if m != nil {
return m.Domain
}
return ""
}
func (m *CustomZone) GetRecords() []*SimpleRecord {
if m != nil {
return m.Records
}
return nil
}
// SimpleRecord represents a dns.SimpleRecord
type SimpleRecord struct {
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
Type int64 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"`
Class string `protobuf:"bytes,3,opt,name=Class,proto3" json:"Class,omitempty"`
TTL int64 `protobuf:"varint,4,opt,name=TTL,proto3" json:"TTL,omitempty"`
RData string `protobuf:"bytes,5,opt,name=RData,proto3" json:"RData,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SimpleRecord) Reset() { *m = SimpleRecord{} }
func (m *SimpleRecord) String() string { return proto.CompactTextString(m) }
func (*SimpleRecord) ProtoMessage() {}
func (*SimpleRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{25}
}
func (m *SimpleRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleRecord.Unmarshal(m, b)
}
func (m *SimpleRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleRecord.Marshal(b, m, deterministic)
}
func (m *SimpleRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_SimpleRecord.Merge(m, src)
}
func (m *SimpleRecord) XXX_Size() int {
return xxx_messageInfo_SimpleRecord.Size(m)
}
func (m *SimpleRecord) XXX_DiscardUnknown() {
xxx_messageInfo_SimpleRecord.DiscardUnknown(m)
}
var xxx_messageInfo_SimpleRecord proto.InternalMessageInfo
func (m *SimpleRecord) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *SimpleRecord) GetType() int64 {
if m != nil {
return m.Type
}
return 0
}
func (m *SimpleRecord) GetClass() string {
if m != nil {
return m.Class
}
return ""
}
func (m *SimpleRecord) GetTTL() int64 {
if m != nil {
return m.TTL
}
return 0
}
func (m *SimpleRecord) GetRData() string {
if m != nil {
return m.RData
}
return ""
}
// NameServerGroup represents a dns.NameServerGroup
type NameServerGroup struct {
NameServers []*NameServer `protobuf:"bytes,1,rep,name=NameServers,proto3" json:"NameServers,omitempty"`
Primary bool `protobuf:"varint,2,opt,name=Primary,proto3" json:"Primary,omitempty"`
Domains []string `protobuf:"bytes,3,rep,name=Domains,proto3" json:"Domains,omitempty"`
SearchDomainsEnabled bool `protobuf:"varint,4,opt,name=SearchDomainsEnabled,proto3" json:"SearchDomainsEnabled,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *NameServerGroup) Reset() { *m = NameServerGroup{} }
func (m *NameServerGroup) String() string { return proto.CompactTextString(m) }
func (*NameServerGroup) ProtoMessage() {}
func (*NameServerGroup) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{26}
}
func (m *NameServerGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NameServerGroup.Unmarshal(m, b)
}
func (m *NameServerGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NameServerGroup.Marshal(b, m, deterministic)
}
func (m *NameServerGroup) XXX_Merge(src proto.Message) {
xxx_messageInfo_NameServerGroup.Merge(m, src)
}
func (m *NameServerGroup) XXX_Size() int {
return xxx_messageInfo_NameServerGroup.Size(m)
}
func (m *NameServerGroup) XXX_DiscardUnknown() {
xxx_messageInfo_NameServerGroup.DiscardUnknown(m)
}
var xxx_messageInfo_NameServerGroup proto.InternalMessageInfo
func (m *NameServerGroup) GetNameServers() []*NameServer {
if m != nil {
return m.NameServers
}
return nil
}
func (m *NameServerGroup) GetPrimary() bool {
if m != nil {
return m.Primary
}
return false
}
func (m *NameServerGroup) GetDomains() []string {
if m != nil {
return m.Domains
}
return nil
}
func (m *NameServerGroup) GetSearchDomainsEnabled() bool {
if m != nil {
return m.SearchDomainsEnabled
}
return false
}
// NameServer represents a dns.NameServer
type NameServer struct {
IP string `protobuf:"bytes,1,opt,name=IP,proto3" json:"IP,omitempty"`
NSType int64 `protobuf:"varint,2,opt,name=NSType,proto3" json:"NSType,omitempty"`
Port int64 `protobuf:"varint,3,opt,name=Port,proto3" json:"Port,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *NameServer) Reset() { *m = NameServer{} }
func (m *NameServer) String() string { return proto.CompactTextString(m) }
func (*NameServer) ProtoMessage() {}
func (*NameServer) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{27}
}
func (m *NameServer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NameServer.Unmarshal(m, b)
}
func (m *NameServer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NameServer.Marshal(b, m, deterministic)
}
func (m *NameServer) XXX_Merge(src proto.Message) {
xxx_messageInfo_NameServer.Merge(m, src)
}
func (m *NameServer) XXX_Size() int {
return xxx_messageInfo_NameServer.Size(m)
}
func (m *NameServer) XXX_DiscardUnknown() {
xxx_messageInfo_NameServer.DiscardUnknown(m)
}
var xxx_messageInfo_NameServer proto.InternalMessageInfo
func (m *NameServer) GetIP() string {
if m != nil {
return m.IP
}
return ""
}
func (m *NameServer) GetNSType() int64 {
if m != nil {
return m.NSType
}
return 0
}
func (m *NameServer) GetPort() int64 {
if m != nil {
return m.Port
}
return 0
}
// FirewallRule represents a firewall rule
type FirewallRule struct {
PeerIP string `protobuf:"bytes,1,opt,name=PeerIP,proto3" json:"PeerIP,omitempty"`
Direction FirewallRuleDirection `protobuf:"varint,2,opt,name=Direction,proto3,enum=management.FirewallRuleDirection" json:"Direction,omitempty"`
Action FirewallRuleAction `protobuf:"varint,3,opt,name=Action,proto3,enum=management.FirewallRuleAction" json:"Action,omitempty"`
Protocol FirewallRuleProtocol `protobuf:"varint,4,opt,name=Protocol,proto3,enum=management.FirewallRuleProtocol" json:"Protocol,omitempty"`
Port string `protobuf:"bytes,5,opt,name=Port,proto3" json:"Port,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *FirewallRule) Reset() { *m = FirewallRule{} }
func (m *FirewallRule) String() string { return proto.CompactTextString(m) }
func (*FirewallRule) ProtoMessage() {}
func (*FirewallRule) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{28}
}
func (m *FirewallRule) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FirewallRule.Unmarshal(m, b)
}
func (m *FirewallRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FirewallRule.Marshal(b, m, deterministic)
}
func (m *FirewallRule) XXX_Merge(src proto.Message) {
xxx_messageInfo_FirewallRule.Merge(m, src)
}
func (m *FirewallRule) XXX_Size() int {
return xxx_messageInfo_FirewallRule.Size(m)
}
func (m *FirewallRule) XXX_DiscardUnknown() {
xxx_messageInfo_FirewallRule.DiscardUnknown(m)
}
var xxx_messageInfo_FirewallRule proto.InternalMessageInfo
func (m *FirewallRule) GetPeerIP() string {
if m != nil {
return m.PeerIP
}
return ""
}
func (m *FirewallRule) GetDirection() FirewallRuleDirection {
if m != nil {
return m.Direction
}
return FirewallRule_IN
}
func (m *FirewallRule) GetAction() FirewallRuleAction {
if m != nil {
return m.Action
}
return FirewallRule_ACCEPT
}
func (m *FirewallRule) GetProtocol() FirewallRuleProtocol {
if m != nil {
return m.Protocol
}
return FirewallRule_UNKNOWN
}
func (m *FirewallRule) GetPort() string {
if m != nil {
return m.Port
}
return ""
}
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
type NetworkAddress struct {
NetIP string `protobuf:"bytes,1,opt,name=netIP,proto3" json:"netIP,omitempty"`
Mac string `protobuf:"bytes,2,opt,name=mac,proto3" json:"mac,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
func (m *NetworkAddress) Reset() { *m = NetworkAddress{} }
func (m *NetworkAddress) String() string { return proto.CompactTextString(m) }
func (*NetworkAddress) ProtoMessage() {}
func (*NetworkAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_edc174f991dc0a25, []int{29}
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
func (m *NetworkAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkAddress.Unmarshal(m, b)
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
func (m *NetworkAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NetworkAddress.Marshal(b, m, deterministic)
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
func (m *NetworkAddress) XXX_Merge(src proto.Message) {
xxx_messageInfo_NetworkAddress.Merge(m, src)
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
func (m *NetworkAddress) XXX_Size() int {
return xxx_messageInfo_NetworkAddress.Size(m)
}
func (m *NetworkAddress) XXX_DiscardUnknown() {
xxx_messageInfo_NetworkAddress.DiscardUnknown(m)
}
var xxx_messageInfo_NetworkAddress proto.InternalMessageInfo
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
func (m *NetworkAddress) GetNetIP() string {
if m != nil {
return m.NetIP
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return ""
}
func (m *NetworkAddress) GetMac() string {
if m != nil {
return m.Mac
Extend system meta (#1598) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Add posture check activities (#1445) * Integrate Endpoints for Posture Checks (#1432) * wip: add posture checks structs * add netbird version check * Refactor posture checks and add version checks * Implement posture and version checks in API models * Refactor API models and enhance posture check functionality * wip: add posture checks endpoints * go mod tidy * Reference the posture checks by id's in policy * Add posture checks management to server * Add posture checks management mocks * implement posture checks handlers * Add posture checks to account copy and fix tests * Refactor posture checks validation * wip: Add posture checks handler tests * Add JSON encoding support to posture checks * Encode posture checks to correct api response object * Refactored posture checks implementation to align with the new API schema * Refactor structure of `Checks` from slice to map * Cleanup * Add posture check activities (#1445) * Revert map to use list of checks * Add posture check activity events * Refactor posture check initialization in account test * Improve the handling of version range in posture check * Fix tests and linter * Remove max_version from NBVersionCheck * Added unit tests for NBVersionCheck * go mod tidy * Extend policy endpoint with posture checks (#1450) * Implement posture and version checks in API models * go mod tidy * Allow attaching posture checks to policy * Update error message for linked posture check on deleting * Refactor PostureCheck and Checks structures * go mod tidy * Add validation for non-existing posture checks * fix unit tests * use Wt version * Remove the enabled field, as posture check will now automatically be activated by default when attaching to a policy * Extend network map generation with posture checks (#1466) * Apply posture checks to network map generation * run policy posture checks on peers to connect * Refactor and streamline policy posture check process for peers to connect. * Add posture checks testing in a network map * Remove redundant nil check in policy.go * Refactor peer validation check in policy.go * Update 'Check' function signature and use logger for version check * Refactor posture checks run on sources and updated the validation func * Update peer validation * fix tests * improved test coverage for policy posture check * Refactoring * Extend NetBird agent to collect kernel version (#1495) * Add KernelVersion field to LoginRequest * Add KernelVersion to system info retrieval * Fix tests * Remove Core field from system info * Replace Core field with new OSVersion field in system info * Added WMI dependency to info_windows.go * Add OS Version posture checks (#1479) * Initial support of Geolocation service (#1491) * Add Geo Location posture check (#1500) * wip: implement geolocation check * add geo location posture checks to posture api * Merge branch 'feature/posture-checks' into geo-posture-check * Remove CityGeoNameID and update required fields in API * Add geoLocation checks to posture checks handler tests * Implement geo location-based checks for peers * Update test values and embed location struct in peer system * add support for country wide checks * initialize country code regex once * Fix peer meta core compability with older clients (#1515) * Refactor extraction of OSVersion in grpcserver * Ignore lint check * Fix peer meta core compability with older management (#1532) * Revert core field deprecation * fix tests * Extend peer meta with location information (#1517) This PR uses the geolocation service to resolve IP to location. The lookup happens once on the first connection - when a client calls the Sync func. The location is stored as part of the peer: * Add Locations endpoints (#1516) * add locations endpoints * Add sqlite3 check and database generation in geolite script * Add SQLite storage for geolocation data * Refactor file existence check into a separate function * Integrate geolocation services into management application * Refactoring * Refactor city retrieval to include Geonames ID * Add signature verification for GeoLite2 database download * Change to in-memory database for geolocation store * Merge manager to geolocation * Update GetAllCountries to return Country name and iso code * fix tests * Add reload to SqliteStore * Add geoname indexes * move db file check to connectDB * Add concurrency safety to SQL queries and database reloading The commit adds mutex locks to the GetAllCountries and GetCitiesByCountry functions to ensure thread-safety during database queries. Additionally, it introduces a mechanism to safely close the old database connection before a new connection is established upon reloading, which improves the reliability of database operations. Lastly, it moves the checking of database file existence to the connectDB function. * Add sha256 sum check to geolocation store before reload * Use read lock * Check SHA256 twice when reload geonames db --------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com> * Add tests and validation for empty peer location in GeoLocationCheck (#1546) * Disallow Geo check creation/update without configured Geo DB (#1548) * Fix shared access to in memory copy of geonames.db (#1550) * Trim suffix in when evaluate Min Kernel Version in OS check * Add Valid Peer Windows Kernel version test * Add Geolocation handler tests (#1556) * Implement user admin checks in posture checks * Add geolocation handler tests * Mark initGeolocationTestData as helper func * Add error handling to geolocation database closure * Add cleanup function to close geolocation resources * Simplify checks definition serialisation (#1555) * Regenerate network map on posture check update (#1563) * change network state and generate map on posture check update * Refactoring * Make city name optional (#1575) * Do not return empty city name * Validate action param of geo location checks (#1577) We only support allow and deny * Switch realip middleware to upstream (#1578) * Be more silent in download-geolite2.sh script * Fix geonames db reload (#1580) * Ensure posture check name uniqueness when create (#1594) * Enhance the management of posture checks (#1595) * add a correct min version and kernel for os posture check example * handle error when geo or location db is nil * expose all peer location details in api response * Check for nil geolocation manager only * Validate posture check before save * bump open api version * add peer location fields to toPeerListItemResponse * Feautre/extend sys meta (#1536) * Collect network addresses * Add Linux sys product info * Fix peer meta comparison * Collect sys info on mac * Add windows sys info * Fix test * Fix test * Fix grpc client * Ignore test * Fix test * Collect IPv6 addresses * Change the IP to IP + net * fix tests * Use netip on server side * Serialize netip to json * Extend Peer metadata with cloud detection (#1552) * add cloud detection + test binary * test windows exe * Collect IPv6 addresses * Change the IP to IP + net * switch to forked cloud detect lib * new test builds * new GCE build * discontinue using library but local copy instead * fix imports * remove openstack check * add hierarchy to cloud check * merge IBM and SoftLayer * close resp bodies and use os lib for file reading * close more resp bodies * fix error check logic * parallelize IBM checks * fix response value * go mod tidy * include context + change kubernetes detection * add context in info functions * extract platform into separate field * fix imports * add missing wmi import --------- Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com> --------- Co-authored-by: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> * generate proto * remove test binaries --------- Co-authored-by: bcmmbaga <bethuelmbaga12@gmail.com> Co-authored-by: Yury Gargay <yury.gargay@gmail.com> Co-authored-by: Zoltan Papp <zoltan.pmail@gmail.com>
2024-02-20 11:53:11 +01:00
}
return ""
}
func init() {
proto.RegisterEnum("management.HostConfig_Protocol", HostConfig_Protocol_name, HostConfig_Protocol_value)
proto.RegisterEnum("management.DeviceAuthorizationFlowProvider", DeviceAuthorizationFlowProvider_name, DeviceAuthorizationFlowProvider_value)
proto.RegisterEnum("management.FirewallRuleDirection", FirewallRuleDirection_name, FirewallRuleDirection_value)
proto.RegisterEnum("management.FirewallRuleAction", FirewallRuleAction_name, FirewallRuleAction_value)
proto.RegisterEnum("management.FirewallRuleProtocol", FirewallRuleProtocol_name, FirewallRuleProtocol_value)
proto.RegisterType((*EncryptedMessage)(nil), "management.EncryptedMessage")
proto.RegisterType((*SyncRequest)(nil), "management.SyncRequest")
proto.RegisterType((*SyncResponse)(nil), "management.SyncResponse")
proto.RegisterType((*LoginRequest)(nil), "management.LoginRequest")
proto.RegisterType((*PeerKeys)(nil), "management.PeerKeys")
proto.RegisterType((*Environment)(nil), "management.Environment")
proto.RegisterType((*PeerSystemMeta)(nil), "management.PeerSystemMeta")
proto.RegisterType((*LoginResponse)(nil), "management.LoginResponse")
proto.RegisterType((*ServerKeyResponse)(nil), "management.ServerKeyResponse")
proto.RegisterType((*Empty)(nil), "management.Empty")
proto.RegisterType((*WiretrusteeConfig)(nil), "management.WiretrusteeConfig")
proto.RegisterType((*HostConfig)(nil), "management.HostConfig")
proto.RegisterType((*ProtectedHostConfig)(nil), "management.ProtectedHostConfig")
proto.RegisterType((*PeerConfig)(nil), "management.PeerConfig")
proto.RegisterType((*NetworkMap)(nil), "management.NetworkMap")
proto.RegisterType((*RemotePeerConfig)(nil), "management.RemotePeerConfig")
proto.RegisterType((*SSHConfig)(nil), "management.SSHConfig")
proto.RegisterType((*DeviceAuthorizationFlowRequest)(nil), "management.DeviceAuthorizationFlowRequest")
proto.RegisterType((*DeviceAuthorizationFlow)(nil), "management.DeviceAuthorizationFlow")
proto.RegisterType((*PKCEAuthorizationFlowRequest)(nil), "management.PKCEAuthorizationFlowRequest")
proto.RegisterType((*PKCEAuthorizationFlow)(nil), "management.PKCEAuthorizationFlow")
proto.RegisterType((*ProviderConfig)(nil), "management.ProviderConfig")
proto.RegisterType((*Route)(nil), "management.Route")
proto.RegisterType((*DNSConfig)(nil), "management.DNSConfig")
proto.RegisterType((*CustomZone)(nil), "management.CustomZone")
proto.RegisterType((*SimpleRecord)(nil), "management.SimpleRecord")
proto.RegisterType((*NameServerGroup)(nil), "management.NameServerGroup")
proto.RegisterType((*NameServer)(nil), "management.NameServer")
proto.RegisterType((*FirewallRule)(nil), "management.FirewallRule")
proto.RegisterType((*NetworkAddress)(nil), "management.NetworkAddress")
}
func init() {
proto.RegisterFile("management.proto", fileDescriptor_edc174f991dc0a25)
}
var fileDescriptor_edc174f991dc0a25 = []byte{
// 1923 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4d, 0x6f, 0x23, 0x49,
0x19, 0x4e, 0xdb, 0xb1, 0x63, 0xbf, 0x76, 0x32, 0x4e, 0x31, 0x33, 0xdb, 0x0a, 0x61, 0x36, 0xb4,
0x10, 0x0a, 0xd2, 0x2a, 0xbb, 0xca, 0xf2, 0x31, 0x68, 0x61, 0xd9, 0x4c, 0x9c, 0x49, 0xa2, 0x24,
0x8e, 0x55, 0xed, 0xb0, 0xa3, 0x81, 0x4b, 0xa7, 0xbb, 0xe2, 0x34, 0xd3, 0xee, 0xf2, 0x54, 0x55,
0x27, 0x18, 0x89, 0x03, 0xff, 0x01, 0x09, 0x7e, 0x02, 0x9c, 0x81, 0x13, 0x07, 0xfe, 0x00, 0x17,
0xfe, 0x02, 0x47, 0x4e, 0xfc, 0x04, 0x54, 0x5f, 0xfd, 0x61, 0x3b, 0x23, 0xd0, 0x70, 0x80, 0x53,
0xea, 0xfd, 0xec, 0xb7, 0x9e, 0x7a, 0xeb, 0xad, 0xc7, 0x81, 0xde, 0x24, 0x48, 0x83, 0x31, 0x99,
0x90, 0x54, 0xec, 0x4d, 0x19, 0x15, 0x14, 0x41, 0xa1, 0xd9, 0xfa, 0x70, 0x4c, 0xe9, 0x38, 0x21,
0x1f, 0x2b, 0xcb, 0x75, 0x76, 0xf3, 0xb1, 0x88, 0x27, 0x84, 0x8b, 0x60, 0x32, 0xd5, 0xce, 0xde,
0x4f, 0xa1, 0x77, 0x94, 0x86, 0x6c, 0x36, 0x15, 0x24, 0xba, 0x20, 0x9c, 0x07, 0x63, 0x82, 0xb6,
0xa0, 0x75, 0x3f, 0x1e, 0x66, 0xd7, 0x67, 0x64, 0xe6, 0x3a, 0x3b, 0xce, 0x6e, 0x1b, 0xe7, 0x32,
0x42, 0xb0, 0x7a, 0x4d, 0xa3, 0x99, 0x5b, 0xdb, 0x71, 0x76, 0xbb, 0x58, 0xad, 0x91, 0x0b, 0x6b,
0x77, 0x84, 0xf1, 0x98, 0xa6, 0x6e, 0x7d, 0xc7, 0xd9, 0x6d, 0x60, 0x2b, 0x7a, 0xeb, 0xd0, 0xf1,
0x67, 0x69, 0x88, 0xc9, 0xdb, 0x8c, 0x70, 0xe1, 0xfd, 0xb9, 0x06, 0x5d, 0x2d, 0xf3, 0x29, 0x4d,
0x39, 0x41, 0x67, 0xb0, 0x79, 0x1f, 0x33, 0x22, 0x58, 0xc6, 0x05, 0x21, 0x87, 0x34, 0xbd, 0x89,
0xc7, 0xea, 0x93, 0x9d, 0xfd, 0xaf, 0xed, 0x95, 0x36, 0xf6, 0xe5, 0xbc, 0x13, 0x5e, 0x8c, 0x43,
0xdf, 0x05, 0x98, 0x12, 0xc2, 0x4c, 0x96, 0x9a, 0xca, 0xf2, 0xb4, 0x9c, 0x65, 0x98, 0x5b, 0x71,
0xc9, 0x13, 0x7d, 0x0e, 0x1d, 0x46, 0x26, 0x54, 0x10, 0x69, 0xe7, 0x6e, 0x7d, 0xa7, 0xbe, 0xdb,
0xd9, 0xdf, 0x2e, 0x07, 0xe2, 0xdc, 0x6c, 0xc2, 0xcb, 0x01, 0x68, 0x0f, 0x50, 0x49, 0x3c, 0xe5,
0x47, 0x93, 0xa9, 0x98, 0xb9, 0xab, 0x3b, 0xce, 0x6e, 0x0b, 0x2f, 0xb1, 0xc8, 0x3a, 0x07, 0x44,
0xdc, 0x53, 0xf6, 0xe6, 0x22, 0x98, 0xba, 0x8d, 0xc5, 0x3a, 0x0b, 0x2b, 0x2e, 0x79, 0x7a, 0xbf,
0x73, 0xa0, 0x7b, 0x4e, 0xc7, 0x71, 0x6a, 0xe0, 0x94, 0xe7, 0xc4, 0x89, 0xc8, 0xa6, 0xa5, 0x73,
0xb2, 0x32, 0xda, 0x83, 0xd5, 0x09, 0x11, 0x81, 0x81, 0x61, 0x6b, 0x1e, 0x06, 0x7f, 0xc6, 0x05,
0x99, 0x5c, 0x10, 0x11, 0x60, 0xe5, 0x27, 0x73, 0xfd, 0xec, 0x5e, 0x8c, 0xe8, 0x1b, 0xa2, 0x0f,
0xb1, 0x8d, 0x73, 0x19, 0x7d, 0x02, 0x2d, 0x09, 0xd7, 0x19, 0x99, 0x71, 0xb5, 0xad, 0xce, 0xfe,
0xe3, 0xf9, 0x7c, 0xd2, 0x86, 0x73, 0x2f, 0xaf, 0x0f, 0x2d, 0xab, 0x45, 0xdb, 0xd0, 0xe6, 0xfc,
0xb6, 0xd4, 0x4e, 0x5d, 0x5c, 0x28, 0x2a, 0xbd, 0xa6, 0x7b, 0x2a, 0x97, 0xbd, 0x1f, 0x41, 0xe7,
0x28, 0xbd, 0x8b, 0x19, 0x4d, 0xe5, 0x77, 0xd0, 0x63, 0x68, 0x84, 0x09, 0xcd, 0x22, 0xb3, 0x57,
0x2d, 0xc8, 0x04, 0xd3, 0x24, 0x10, 0x37, 0x94, 0x4d, 0x54, 0x82, 0x36, 0xce, 0x65, 0xef, 0xf7,
0xab, 0xb0, 0x51, 0xdd, 0xad, 0x74, 0xbf, 0xa5, 0x5c, 0xa4, 0xc1, 0x84, 0x58, 0xcc, 0xac, 0x2c,
0x7b, 0x7b, 0x4c, 0x2f, 0x7d, 0x93, 0x46, 0xad, 0xd1, 0x53, 0x68, 0xbe, 0x21, 0x2c, 0x25, 0x89,
0x41, 0xc5, 0x48, 0xd2, 0x37, 0xa4, 0x8c, 0x28, 0x3c, 0xda, 0x58, 0xad, 0x2b, 0xa5, 0x34, 0xaa,
0xa5, 0xa0, 0x0d, 0xa8, 0x5d, 0xfa, 0x6e, 0x53, 0x69, 0x6b, 0x97, 0xbe, 0x6c, 0x9a, 0x52, 0x07,
0xff, 0xd8, 0x5c, 0x9f, 0x35, 0x65, 0x5f, 0x62, 0x91, 0x28, 0x66, 0xb1, 0x75, 0x6b, 0x29, 0xb7,
0x42, 0x81, 0xbe, 0x01, 0xeb, 0xba, 0x2e, 0xeb, 0xd1, 0x56, 0x1e, 0x55, 0xa5, 0xcc, 0x71, 0xe9,
0x5b, 0x0f, 0xd0, 0x39, 0x72, 0x05, 0x7a, 0x09, 0xbd, 0x54, 0x37, 0xdb, 0x41, 0x14, 0x31, 0xc2,
0x39, 0xe1, 0x6e, 0x47, 0xdd, 0x85, 0xad, 0x25, 0xcd, 0x69, 0x7c, 0xf0, 0x42, 0x0c, 0xda, 0x85,
0x47, 0x7c, 0xc6, 0x7d, 0xc2, 0xe2, 0x20, 0x19, 0x64, 0x93, 0x6b, 0xc2, 0xdc, 0xae, 0xfa, 0xd6,
0xbc, 0x1a, 0x7d, 0x13, 0x36, 0xf8, 0x8c, 0x0f, 0x19, 0x8d, 0xb2, 0x50, 0x0c, 0xe4, 0x89, 0xac,
0x2b, 0xc7, 0x39, 0xad, 0xc9, 0x78, 0x11, 0xa4, 0xd9, 0x4d, 0x10, 0x8a, 0x8c, 0x11, 0xe6, 0x6e,
0xe4, 0x19, 0xcb, 0x6a, 0xf4, 0x7d, 0xe8, 0x90, 0xa2, 0x63, 0xdc, 0x47, 0xaa, 0x59, 0x3f, 0x28,
0x97, 0x5f, 0x6a, 0x28, 0x5c, 0xf6, 0xf5, 0x7e, 0xed, 0xc0, 0xba, 0xb9, 0x5d, 0xff, 0x43, 0xc3,
0xc9, 0x9b, 0xc1, 0xa6, 0x4f, 0xd8, 0x9d, 0xba, 0x4b, 0x79, 0x65, 0x3d, 0xa8, 0xbf, 0xc9, 0xef,
0xbc, 0x5c, 0xa2, 0xe7, 0xd0, 0x26, 0x3f, 0x9f, 0xc6, 0x8c, 0xf0, 0x03, 0x91, 0xdf, 0x79, 0x3d,
0xfb, 0xf7, 0xec, 0xec, 0xdf, 0x1b, 0xd9, 0xd9, 0x8f, 0x0b, 0xe7, 0x77, 0x0c, 0xef, 0x35, 0x68,
0xa8, 0x81, 0xe5, 0xfd, 0xd5, 0x81, 0xcd, 0x85, 0x4d, 0xa2, 0x8f, 0xa0, 0xc1, 0x45, 0x96, 0x72,
0xd7, 0x51, 0x4d, 0x52, 0xd9, 0xcc, 0x09, 0xe5, 0xc2, 0x6c, 0x46, 0x3b, 0xa1, 0xef, 0x40, 0x43,
0x64, 0x2c, 0xe5, 0x6e, 0x4d, 0x79, 0x7f, 0x58, 0xd9, 0x3a, 0xa3, 0x82, 0x84, 0x82, 0x44, 0xe5,
0x30, 0xe5, 0x8d, 0xf6, 0xa0, 0xc9, 0xe3, 0x71, 0x1a, 0xe8, 0xeb, 0xf7, 0xf0, 0x57, 0x8c, 0x17,
0xf2, 0xa0, 0x8b, 0x49, 0x12, 0xcc, 0x4c, 0x3b, 0x9a, 0xeb, 0x59, 0xd1, 0x79, 0xbf, 0x75, 0x00,
0x8a, 0x50, 0x09, 0x66, 0xc6, 0x62, 0x0b, 0x66, 0xc6, 0x62, 0xf4, 0x19, 0xb4, 0x14, 0x66, 0x21,
0x4d, 0x14, 0x96, 0x1b, 0xd5, 0x72, 0x8b, 0x58, 0x55, 0xb9, 0x74, 0xc3, 0x79, 0x80, 0xf7, 0x19,
0xb4, 0xac, 0x16, 0xad, 0x41, 0xfd, 0xaa, 0x3f, 0xec, 0xad, 0xc8, 0xc5, 0xe8, 0x70, 0xd8, 0x73,
0x50, 0x0b, 0x56, 0x4f, 0x46, 0xa3, 0x61, 0xaf, 0x86, 0xda, 0xd0, 0x90, 0x2b, 0xbf, 0x57, 0x97,
0xca, 0xfe, 0xe8, 0xdc, 0xef, 0xad, 0x7a, 0xbf, 0x84, 0xaf, 0x2c, 0x01, 0x43, 0x36, 0xcf, 0x6d,
0x2e, 0x99, 0x16, 0x7c, 0x08, 0x89, 0x92, 0xa7, 0x1c, 0x52, 0x19, 0x27, 0xcc, 0x0e, 0x34, 0xb9,
0x56, 0x43, 0x2a, 0xe0, 0xfc, 0x9e, 0xb2, 0xc8, 0x0e, 0x7a, 0x2b, 0x7b, 0xbf, 0x72, 0x00, 0x8a,
0x3e, 0x94, 0xad, 0x11, 0x18, 0x1c, 0x35, 0x3a, 0x56, 0x94, 0x98, 0x45, 0xea, 0x2c, 0x15, 0x66,
0x51, 0xca, 0xd1, 0xa7, 0x6a, 0xca, 0x9b, 0x0a, 0xf5, 0x59, 0x3d, 0x29, 0x57, 0xe8, 0xfb, 0x27,
0xa6, 0xc0, 0xc2, 0x4f, 0xd6, 0x77, 0xf3, 0x36, 0x4a, 0xed, 0x10, 0x95, 0x6b, 0xef, 0xef, 0xf5,
0xf2, 0xf3, 0x28, 0xe7, 0xaf, 0x9e, 0x19, 0xaa, 0x84, 0x55, 0x6c, 0xa4, 0xff, 0x9b, 0xc7, 0xfe,
0x5b, 0xd0, 0xc4, 0x34, 0x13, 0x84, 0xbb, 0x0d, 0xf5, 0xa9, 0xcd, 0xca, 0xa7, 0xa4, 0x05, 0x1b,
0x07, 0x09, 0x61, 0x7f, 0xe0, 0x9b, 0x1d, 0x35, 0x17, 0x21, 0xcc, 0x8d, 0xb8, 0xf0, 0x43, 0x5f,
0x40, 0x97, 0xde, 0xdc, 0x24, 0x71, 0x6a, 0x36, 0xb4, 0xf6, 0x6f, 0x6c, 0xa8, 0x12, 0x81, 0x3e,
0x87, 0xf5, 0x97, 0x31, 0x23, 0xf7, 0x41, 0x92, 0xe0, 0x2c, 0x21, 0xdc, 0x6d, 0xa9, 0x14, 0x6e,
0x39, 0x45, 0xd9, 0x01, 0x57, 0xdd, 0xd1, 0x3e, 0x3c, 0xbe, 0x29, 0x2b, 0x2c, 0x26, 0x6d, 0x85,
0xc9, 0x52, 0x9b, 0xf7, 0x1b, 0x07, 0x7a, 0xf3, 0x65, 0xbd, 0x93, 0x76, 0x3e, 0x03, 0x08, 0x92,
0x84, 0xde, 0x93, 0xe8, 0x74, 0xaa, 0x67, 0x48, 0x1b, 0x97, 0x34, 0xff, 0xbd, 0xf6, 0x3b, 0x85,
0x76, 0xee, 0x2b, 0xbf, 0xca, 0xf9, 0xed, 0x51, 0x1a, 0x5c, 0x27, 0x44, 0xd3, 0x8e, 0x16, 0x2e,
0x69, 0xaa, 0xd4, 0xa6, 0x36, 0x47, 0x6d, 0xbc, 0x1d, 0x78, 0xd6, 0x27, 0x77, 0x71, 0x48, 0x0e,
0x32, 0x71, 0x4b, 0x59, 0xfc, 0x8b, 0x40, 0xc4, 0x34, 0x7d, 0x99, 0xd0, 0x7b, 0xcb, 0x87, 0xff,
0xe2, 0xc0, 0x07, 0x0f, 0xb8, 0xa0, 0x13, 0x35, 0x47, 0xee, 0xe2, 0x88, 0x30, 0xf5, 0xe5, 0x8d,
0xfd, 0x8f, 0x2a, 0xcd, 0xb0, 0x3c, 0x4c, 0x0e, 0x7b, 0x15, 0x83, 0xf3, 0x68, 0xf4, 0x02, 0x36,
0xec, 0xba, 0x72, 0x5d, 0xb6, 0xe6, 0x66, 0x70, 0xc9, 0x03, 0xcf, 0x45, 0x78, 0x4f, 0xd5, 0x48,
0xd4, 0xf9, 0x00, 0x9a, 0x27, 0x97, 0xfe, 0xe8, 0xa8, 0xdf, 0x5b, 0xf1, 0x9e, 0xc1, 0xf6, 0xf0,
0xec, 0xf0, 0xe8, 0xc1, 0x1d, 0xfe, 0x04, 0x9e, 0x2c, 0xb5, 0x2f, 0x29, 0xca, 0xf9, 0x8f, 0x8b,
0xfa, 0x47, 0x6d, 0x3e, 0x89, 0xec, 0xa1, 0xc3, 0x24, 0x26, 0xa9, 0x38, 0xed, 0xdb, 0x1e, 0xb2,
0xb2, 0x7c, 0x1b, 0xf4, 0xda, 0x27, 0x21, 0x23, 0xc2, 0x4c, 0xaf, 0x8a, 0x4e, 0x8e, 0x9b, 0x3e,
0x9d, 0x04, 0xb1, 0x25, 0xc1, 0x46, 0x92, 0x79, 0x0f, 0xb2, 0x28, 0x26, 0x69, 0x68, 0x29, 0x5f,
0x2e, 0xcb, 0x91, 0x50, 0x9c, 0xc6, 0x51, 0x1a, 0x4d, 0x69, 0x9c, 0x0a, 0x43, 0x00, 0x97, 0x58,
0x24, 0x59, 0x53, 0xbc, 0x3a, 0x77, 0xd5, 0xac, 0xb0, 0xaa, 0x94, 0x6c, 0xd7, 0x0f, 0xe9, 0x94,
0x18, 0x4e, 0xa8, 0x05, 0xd9, 0x91, 0x57, 0x9c, 0x9c, 0xf6, 0x35, 0x51, 0x6f, 0xe9, 0x8e, 0x2c,
0x34, 0xe8, 0xdb, 0xf0, 0xa4, 0x82, 0x75, 0xfe, 0x0d, 0x4d, 0x08, 0x97, 0x1b, 0xf5, 0xab, 0x19,
0xc5, 0x8c, 0x84, 0xe2, 0x0a, 0x9f, 0x73, 0x17, 0xd4, 0xfd, 0xaa, 0xe8, 0xbc, 0x3f, 0x39, 0xd0,
0x50, 0x83, 0x4a, 0x52, 0xd9, 0x1c, 0xdd, 0xda, 0x69, 0x5f, 0x3e, 0x13, 0x66, 0x60, 0x1b, 0x48,
0xad, 0x88, 0x76, 0xa0, 0x63, 0x96, 0xa3, 0xd9, 0x94, 0x28, 0x48, 0xeb, 0xb8, 0xac, 0x92, 0x57,
0x50, 0x4e, 0x00, 0x7b, 0x05, 0xe5, 0x5a, 0x9e, 0xc1, 0x05, 0x11, 0x2c, 0x0e, 0x15, 0x86, 0x75,
0x6c, 0x24, 0xb9, 0xf7, 0x8b, 0x80, 0xbf, 0xcd, 0x08, 0x0b, 0x22, 0xa2, 0x40, 0x6b, 0xe1, 0x92,
0x46, 0x22, 0x36, 0x20, 0xf2, 0xe0, 0x0d, 0x62, 0x4a, 0xf0, 0xfe, 0xe8, 0x94, 0xc6, 0xaa, 0xc4,
0x5e, 0xd2, 0xa9, 0x38, 0x24, 0xfa, 0x0e, 0x9b, 0x4b, 0x5d, 0x55, 0xa2, 0x63, 0xe8, 0x49, 0xe2,
0xa9, 0x89, 0xd7, 0x31, 0xa3, 0xd9, 0xd4, 0xf2, 0x96, 0xaf, 0x56, 0xa8, 0x70, 0xd5, 0x07, 0x2f,
0x04, 0xa1, 0xe7, 0xd0, 0x39, 0xcc, 0xb8, 0xa0, 0x93, 0xd7, 0x34, 0x25, 0xf6, 0xb5, 0xa9, 0x3c,
0x53, 0x85, 0x19, 0x97, 0x5d, 0xbd, 0x57, 0x00, 0x85, 0x58, 0x6a, 0x4b, 0xa7, 0xd2, 0x96, 0xfb,
0xb0, 0x86, 0x49, 0x48, 0x59, 0x64, 0xeb, 0xab, 0x4c, 0x6d, 0x3f, 0x9e, 0x4c, 0x13, 0xa2, 0x1d,
0xb0, 0x75, 0xf4, 0x04, 0x74, 0xcb, 0x06, 0x79, 0x04, 0x83, 0xe2, 0xd7, 0x90, 0x5a, 0x4b, 0x9d,
0x3a, 0xb1, 0x9a, 0x3a, 0x00, 0xb5, 0x96, 0xf0, 0x1e, 0x26, 0x01, 0xe7, 0xe6, 0x66, 0x68, 0x41,
0x32, 0x81, 0xd1, 0xe8, 0x5c, 0x9d, 0x5f, 0x1d, 0xcb, 0xa5, 0xf4, 0xc3, 0xfd, 0x40, 0x04, 0xe6,
0x06, 0x68, 0xc1, 0xfb, 0x83, 0x03, 0x8f, 0xe6, 0xe0, 0x91, 0xe8, 0x14, 0xaa, 0xa5, 0x3c, 0xb2,
0x30, 0xe3, 0xb2, 0xab, 0x6c, 0xb9, 0x21, 0x8b, 0x27, 0x01, 0xd3, 0x63, 0xb7, 0x85, 0xad, 0x28,
0x2d, 0x1a, 0x1b, 0x8d, 0x76, 0x1b, 0x5b, 0x51, 0xbe, 0x53, 0x3e, 0x09, 0x58, 0x78, 0x6b, 0x14,
0x76, 0xac, 0xeb, 0xb7, 0x7b, 0xa9, 0xcd, 0x3b, 0x01, 0x28, 0x3e, 0xab, 0x1a, 0x7f, 0x98, 0x37,
0xfe, 0x50, 0x9e, 0xca, 0xc0, 0x2f, 0xe1, 0x64, 0x24, 0xd5, 0xd4, 0x94, 0x09, 0xd3, 0xef, 0x6a,
0xed, 0xfd, 0xb3, 0x06, 0xdd, 0xf2, 0xbb, 0x29, 0x83, 0x65, 0xb7, 0xe7, 0x09, 0x8d, 0x84, 0xbe,
0x80, 0x76, 0x5f, 0xdd, 0x3a, 0xc9, 0xc8, 0x35, 0xfb, 0xf4, 0x1e, 0x7a, 0x8a, 0xf7, 0x22, 0xeb,
0x89, 0x8b, 0x20, 0xf4, 0x3d, 0x68, 0x1e, 0xe8, 0xf0, 0xfa, 0x22, 0x79, 0xad, 0x84, 0x07, 0x3a,
0xd6, 0xb8, 0xa3, 0x1f, 0x16, 0xd4, 0x55, 0xa1, 0xb2, 0xb1, 0xff, 0xf5, 0x07, 0x43, 0xa7, 0x39,
0xf3, 0xcd, 0xd9, 0xae, 0xdd, 0x76, 0xc3, 0xdc, 0x65, 0xb9, 0xed, 0x6d, 0x68, 0xe7, 0x35, 0xa2,
0x26, 0xd4, 0x4e, 0x07, 0x9a, 0x0d, 0x5f, 0x5e, 0x8d, 0x7a, 0x8e, 0xf7, 0x0c, 0x9a, 0xba, 0x04,
0xf9, 0xa6, 0x1c, 0x1c, 0x1e, 0x1e, 0x0d, 0x47, 0xbd, 0x15, 0x45, 0x87, 0xf1, 0xe5, 0xb0, 0xe7,
0x78, 0x3f, 0x28, 0x88, 0x38, 0xea, 0xc0, 0xda, 0xd5, 0xe0, 0x6c, 0x70, 0xf9, 0xa5, 0xc9, 0x70,
0x70, 0x7e, 0xde, 0x73, 0x2c, 0xb1, 0xae, 0x59, 0xaa, 0xad, 0xc8, 0xf4, 0xe9, 0xe1, 0xc5, 0xb0,
0xb7, 0xea, 0x3d, 0x87, 0x8d, 0xea, 0x8f, 0x55, 0xd9, 0x9a, 0x29, 0x11, 0x39, 0xe4, 0x5a, 0x90,
0x2d, 0x3c, 0x09, 0x42, 0x4b, 0x66, 0x27, 0x41, 0xb8, 0xff, 0xb7, 0x3a, 0x6c, 0x5e, 0xe4, 0x1b,
0x37, 0xb3, 0x01, 0x1d, 0x41, 0x43, 0xfd, 0x40, 0x44, 0xdb, 0xd5, 0x1f, 0x94, 0xd5, 0xff, 0x9e,
0x6d, 0xbd, 0xd3, 0xea, 0xad, 0xa0, 0x97, 0xb0, 0xea, 0xcf, 0xd2, 0xf0, 0xfd, 0xb2, 0x7c, 0xe2,
0xa0, 0x17, 0xd0, 0x3d, 0x26, 0x22, 0xff, 0x71, 0x88, 0x2a, 0xcc, 0x52, 0xd1, 0xac, 0xad, 0xca,
0xcf, 0xd4, 0x85, 0x9f, 0x91, 0xde, 0x8a, 0xa4, 0x4d, 0x31, 0x3f, 0x21, 0x41, 0x22, 0x6e, 0x97,
0x26, 0x58, 0x54, 0x79, 0x2b, 0xe8, 0x35, 0x6c, 0x1d, 0x13, 0xf1, 0x10, 0x6f, 0x79, 0x3f, 0x70,
0x5e, 0x81, 0x7b, 0x4c, 0xc4, 0x72, 0xca, 0xf0, 0x5e, 0x99, 0x5f, 0xb4, 0x5e, 0x37, 0xcd, 0x7f,
0x41, 0x9b, 0xea, 0xcf, 0xa7, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xde, 0x32, 0x7a, 0x3a,
0x15, 0x00, 0x00,
}