apiv1

package
v1.234.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Browser_Open_FullMethodName   = "/atmos.api.v1.Browser/Open"
	Browser_Listen_FullMethodName = "/atmos.api.v1.Browser/Listen"
)
View Source
const (
	Credentials_Get_FullMethodName    = "/atmos.api.v1.Credentials/Get"
	Credentials_Put_FullMethodName    = "/atmos.api.v1.Credentials/Put"
	Credentials_Delete_FullMethodName = "/atmos.api.v1.Credentials/Delete"
)
View Source
const (
	HTTP_Do_FullMethodName = "/atmos.api.v1.HTTP/Do"
)
View Source
const (
	Secrets_Read_FullMethodName = "/atmos.api.v1.Secrets/Read"
)

Variables

View Source
var Browser_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "atmos.api.v1.Browser",
	HandlerType: (*BrowserServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Open",
			Handler:    _Browser_Open_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Listen",
			Handler:       _Browser_Listen_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "atmos/api/v1/api.proto",
}

Browser_ServiceDesc is the grpc.ServiceDesc for Browser service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var Credentials_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "atmos.api.v1.Credentials",
	HandlerType: (*CredentialsServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Get",
			Handler:    _Credentials_Get_Handler,
		},
		{
			MethodName: "Put",
			Handler:    _Credentials_Put_Handler,
		},
		{
			MethodName: "Delete",
			Handler:    _Credentials_Delete_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "atmos/api/v1/api.proto",
}

Credentials_ServiceDesc is the grpc.ServiceDesc for Credentials service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_atmos_api_v1_api_proto protoreflect.FileDescriptor
View Source
var HTTP_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "atmos.api.v1.HTTP",
	HandlerType: (*HTTPServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Do",
			Handler:    _HTTP_Do_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "atmos/api/v1/api.proto",
}

HTTP_ServiceDesc is the grpc.ServiceDesc for HTTP service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var Secrets_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "atmos.api.v1.Secrets",
	HandlerType: (*SecretsServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Read",
			Handler:    _Secrets_Read_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "atmos/api/v1/api.proto",
}

Secrets_ServiceDesc is the grpc.ServiceDesc for Secrets service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterBrowserServer

func RegisterBrowserServer(s grpc.ServiceRegistrar, srv BrowserServer)

func RegisterCredentialsServer

func RegisterCredentialsServer(s grpc.ServiceRegistrar, srv CredentialsServer)

func RegisterHTTPServer

func RegisterHTTPServer(s grpc.ServiceRegistrar, srv HTTPServer)

func RegisterSecretsServer

func RegisterSecretsServer(s grpc.ServiceRegistrar, srv SecretsServer)

Types

type BrowserClient

type BrowserClient interface {
	Open(ctx context.Context, in *OpenRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	Listen(ctx context.Context, in *ListenRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CallbackEvent], error)
}

BrowserClient is the client API for Browser service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewBrowserClient

func NewBrowserClient(cc grpc.ClientConnInterface) BrowserClient

type BrowserServer

type BrowserServer interface {
	Open(context.Context, *OpenRequest) (*emptypb.Empty, error)
	Listen(*ListenRequest, grpc.ServerStreamingServer[CallbackEvent]) error
	// contains filtered or unexported methods
}

BrowserServer is the server API for Browser service. All implementations must embed UnimplementedBrowserServer for forward compatibility.

type Browser_ListenClient

type Browser_ListenClient = grpc.ServerStreamingClient[CallbackEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type Browser_ListenServer

type Browser_ListenServer = grpc.ServerStreamingServer[CallbackEvent]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type Callback

type Callback struct {
	Code  string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

func (*Callback) Descriptor deprecated

func (*Callback) Descriptor() ([]byte, []int)

Deprecated: Use Callback.ProtoReflect.Descriptor instead.

func (*Callback) GetCode

func (x *Callback) GetCode() string

func (*Callback) GetError

func (x *Callback) GetError() string

func (*Callback) GetState

func (x *Callback) GetState() string

func (*Callback) ProtoMessage

func (*Callback) ProtoMessage()

func (*Callback) ProtoReflect

func (x *Callback) ProtoReflect() protoreflect.Message

func (*Callback) Reset

func (x *Callback) Reset()

func (*Callback) String

func (x *Callback) String() string

type CallbackEvent

type CallbackEvent struct {

	// Types that are valid to be assigned to Event:
	//
	//	*CallbackEvent_Ready
	//	*CallbackEvent_Callback
	Event isCallbackEvent_Event `protobuf_oneof:"event"`
	// contains filtered or unexported fields
}

func (*CallbackEvent) Descriptor deprecated

func (*CallbackEvent) Descriptor() ([]byte, []int)

Deprecated: Use CallbackEvent.ProtoReflect.Descriptor instead.

func (*CallbackEvent) GetCallback

func (x *CallbackEvent) GetCallback() *Callback

func (*CallbackEvent) GetEvent

func (x *CallbackEvent) GetEvent() isCallbackEvent_Event

func (*CallbackEvent) GetReady

func (x *CallbackEvent) GetReady() *CallbackReady

func (*CallbackEvent) ProtoMessage

func (*CallbackEvent) ProtoMessage()

func (*CallbackEvent) ProtoReflect

func (x *CallbackEvent) ProtoReflect() protoreflect.Message

func (*CallbackEvent) Reset

func (x *CallbackEvent) Reset()

func (*CallbackEvent) String

func (x *CallbackEvent) String() string

type CallbackEvent_Callback

type CallbackEvent_Callback struct {
	Callback *Callback `protobuf:"bytes,2,opt,name=callback,proto3,oneof"`
}

type CallbackEvent_Ready

type CallbackEvent_Ready struct {
	Ready *CallbackReady `protobuf:"bytes,1,opt,name=ready,proto3,oneof"`
}

type CallbackReady

type CallbackReady struct {
	RedirectUri string `protobuf:"bytes,1,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"`
	// contains filtered or unexported fields
}

func (*CallbackReady) Descriptor deprecated

func (*CallbackReady) Descriptor() ([]byte, []int)

Deprecated: Use CallbackReady.ProtoReflect.Descriptor instead.

func (*CallbackReady) GetRedirectUri

func (x *CallbackReady) GetRedirectUri() string

func (*CallbackReady) ProtoMessage

func (*CallbackReady) ProtoMessage()

func (*CallbackReady) ProtoReflect

func (x *CallbackReady) ProtoReflect() protoreflect.Message

func (*CallbackReady) Reset

func (x *CallbackReady) Reset()

func (*CallbackReady) String

func (x *CallbackReady) String() string

type CredentialsClient

type CredentialsClient interface {
	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
	Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

CredentialsClient is the client API for Credentials service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

Credentials stores opaque private state inside the invocation's session namespace. It never evicts a session just because its access token has expired.

type CredentialsServer

type CredentialsServer interface {
	Get(context.Context, *GetRequest) (*GetResponse, error)
	Put(context.Context, *PutRequest) (*emptypb.Empty, error)
	Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error)
	// contains filtered or unexported methods
}

CredentialsServer is the server API for Credentials service. All implementations must embed UnimplementedCredentialsServer for forward compatibility.

Credentials stores opaque private state inside the invocation's session namespace. It never evicts a session just because its access token has expired.

type DeleteRequest

type DeleteRequest struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteRequest) Descriptor deprecated

func (*DeleteRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.

func (*DeleteRequest) GetKey

func (x *DeleteRequest) GetKey() string

func (*DeleteRequest) ProtoMessage

func (*DeleteRequest) ProtoMessage()

func (*DeleteRequest) ProtoReflect

func (x *DeleteRequest) ProtoReflect() protoreflect.Message

func (*DeleteRequest) Reset

func (x *DeleteRequest) Reset()

func (*DeleteRequest) String

func (x *DeleteRequest) String() string

type GetRequest

type GetRequest struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

func (*GetRequest) Descriptor deprecated

func (*GetRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.

func (*GetRequest) GetKey

func (x *GetRequest) GetKey() string

func (*GetRequest) ProtoMessage

func (*GetRequest) ProtoMessage()

func (*GetRequest) ProtoReflect

func (x *GetRequest) ProtoReflect() protoreflect.Message

func (*GetRequest) Reset

func (x *GetRequest) Reset()

func (*GetRequest) String

func (x *GetRequest) String() string

type GetResponse

type GetResponse struct {
	Data  []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Found bool   `protobuf:"varint,2,opt,name=found,proto3" json:"found,omitempty"`
	// contains filtered or unexported fields
}

func (*GetResponse) Descriptor deprecated

func (*GetResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.

func (*GetResponse) GetData

func (x *GetResponse) GetData() []byte

func (*GetResponse) GetFound

func (x *GetResponse) GetFound() bool

func (*GetResponse) ProtoMessage

func (*GetResponse) ProtoMessage()

func (*GetResponse) ProtoReflect

func (x *GetResponse) ProtoReflect() protoreflect.Message

func (*GetResponse) Reset

func (x *GetResponse) Reset()

func (*GetResponse) String

func (x *GetResponse) String() string

type HTTPClient

type HTTPClient interface {
	Do(ctx context.Context, in *HTTPRequest, opts ...grpc.CallOption) (*HTTPResponse, error)
}

HTTPClient is the client API for HTTP service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

HTTP performs one exchange. Redirect handling belongs to the SDK HTTP client.

func NewHTTPClient

func NewHTTPClient(cc grpc.ClientConnInterface) HTTPClient

type HTTPRequest

type HTTPRequest struct {
	Method  string                   `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
	Url     string                   `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	Headers map[string]*HeaderValues `` /* 141-byte string literal not displayed */
	Body    []byte                   `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"`
	// contains filtered or unexported fields
}

func (*HTTPRequest) Descriptor deprecated

func (*HTTPRequest) Descriptor() ([]byte, []int)

Deprecated: Use HTTPRequest.ProtoReflect.Descriptor instead.

func (*HTTPRequest) GetBody

func (x *HTTPRequest) GetBody() []byte

func (*HTTPRequest) GetHeaders

func (x *HTTPRequest) GetHeaders() map[string]*HeaderValues

func (*HTTPRequest) GetMethod

func (x *HTTPRequest) GetMethod() string

func (*HTTPRequest) GetUrl

func (x *HTTPRequest) GetUrl() string

func (*HTTPRequest) ProtoMessage

func (*HTTPRequest) ProtoMessage()

func (*HTTPRequest) ProtoReflect

func (x *HTTPRequest) ProtoReflect() protoreflect.Message

func (*HTTPRequest) Reset

func (x *HTTPRequest) Reset()

func (*HTTPRequest) String

func (x *HTTPRequest) String() string

type HTTPResponse

type HTTPResponse struct {
	StatusCode int32                    `protobuf:"varint,1,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
	Headers    map[string]*HeaderValues `` /* 141-byte string literal not displayed */
	Body       []byte                   `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// contains filtered or unexported fields
}

func (*HTTPResponse) Descriptor deprecated

func (*HTTPResponse) Descriptor() ([]byte, []int)

Deprecated: Use HTTPResponse.ProtoReflect.Descriptor instead.

func (*HTTPResponse) GetBody

func (x *HTTPResponse) GetBody() []byte

func (*HTTPResponse) GetHeaders

func (x *HTTPResponse) GetHeaders() map[string]*HeaderValues

func (*HTTPResponse) GetStatusCode

func (x *HTTPResponse) GetStatusCode() int32

func (*HTTPResponse) ProtoMessage

func (*HTTPResponse) ProtoMessage()

func (*HTTPResponse) ProtoReflect

func (x *HTTPResponse) ProtoReflect() protoreflect.Message

func (*HTTPResponse) Reset

func (x *HTTPResponse) Reset()

func (*HTTPResponse) String

func (x *HTTPResponse) String() string

type HTTPServer

type HTTPServer interface {
	Do(context.Context, *HTTPRequest) (*HTTPResponse, error)
	// contains filtered or unexported methods
}

HTTPServer is the server API for HTTP service. All implementations must embed UnimplementedHTTPServer for forward compatibility.

HTTP performs one exchange. Redirect handling belongs to the SDK HTTP client.

type HeaderValues

type HeaderValues struct {
	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	// contains filtered or unexported fields
}

func (*HeaderValues) Descriptor deprecated

func (*HeaderValues) Descriptor() ([]byte, []int)

Deprecated: Use HeaderValues.ProtoReflect.Descriptor instead.

func (*HeaderValues) GetValues

func (x *HeaderValues) GetValues() []string

func (*HeaderValues) ProtoMessage

func (*HeaderValues) ProtoMessage()

func (*HeaderValues) ProtoReflect

func (x *HeaderValues) ProtoReflect() protoreflect.Message

func (*HeaderValues) Reset

func (x *HeaderValues) Reset()

func (*HeaderValues) String

func (x *HeaderValues) String() string

type ListenRequest

type ListenRequest struct {
	Path          string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	ExpectedState string `protobuf:"bytes,2,opt,name=expected_state,json=expectedState,proto3" json:"expected_state,omitempty"`
	// contains filtered or unexported fields
}

func (*ListenRequest) Descriptor deprecated

func (*ListenRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListenRequest.ProtoReflect.Descriptor instead.

func (*ListenRequest) GetExpectedState

func (x *ListenRequest) GetExpectedState() string

func (*ListenRequest) GetPath

func (x *ListenRequest) GetPath() string

func (*ListenRequest) ProtoMessage

func (*ListenRequest) ProtoMessage()

func (*ListenRequest) ProtoReflect

func (x *ListenRequest) ProtoReflect() protoreflect.Message

func (*ListenRequest) Reset

func (x *ListenRequest) Reset()

func (*ListenRequest) String

func (x *ListenRequest) String() string

type OpenRequest

type OpenRequest struct {
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// contains filtered or unexported fields
}

func (*OpenRequest) Descriptor deprecated

func (*OpenRequest) Descriptor() ([]byte, []int)

Deprecated: Use OpenRequest.ProtoReflect.Descriptor instead.

func (*OpenRequest) GetUrl

func (x *OpenRequest) GetUrl() string

func (*OpenRequest) ProtoMessage

func (*OpenRequest) ProtoMessage()

func (*OpenRequest) ProtoReflect

func (x *OpenRequest) ProtoReflect() protoreflect.Message

func (*OpenRequest) Reset

func (x *OpenRequest) Reset()

func (*OpenRequest) String

func (x *OpenRequest) String() string

type PutRequest

type PutRequest struct {
	Key  string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

func (*PutRequest) Descriptor deprecated

func (*PutRequest) Descriptor() ([]byte, []int)

Deprecated: Use PutRequest.ProtoReflect.Descriptor instead.

func (*PutRequest) GetData

func (x *PutRequest) GetData() []byte

func (*PutRequest) GetKey

func (x *PutRequest) GetKey() string

func (*PutRequest) ProtoMessage

func (*PutRequest) ProtoMessage()

func (*PutRequest) ProtoReflect

func (x *PutRequest) ProtoReflect() protoreflect.Message

func (*PutRequest) Reset

func (x *PutRequest) Reset()

func (*PutRequest) String

func (x *PutRequest) String() string

type SecretRequest

type SecretRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*SecretRequest) Descriptor deprecated

func (*SecretRequest) Descriptor() ([]byte, []int)

Deprecated: Use SecretRequest.ProtoReflect.Descriptor instead.

func (*SecretRequest) GetName

func (x *SecretRequest) GetName() string

func (*SecretRequest) ProtoMessage

func (*SecretRequest) ProtoMessage()

func (*SecretRequest) ProtoReflect

func (x *SecretRequest) ProtoReflect() protoreflect.Message

func (*SecretRequest) Reset

func (x *SecretRequest) Reset()

func (*SecretRequest) String

func (x *SecretRequest) String() string

type SecretResponse

type SecretResponse struct {
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*SecretResponse) Descriptor deprecated

func (*SecretResponse) Descriptor() ([]byte, []int)

Deprecated: Use SecretResponse.ProtoReflect.Descriptor instead.

func (*SecretResponse) GetValue

func (x *SecretResponse) GetValue() string

func (*SecretResponse) ProtoMessage

func (*SecretResponse) ProtoMessage()

func (*SecretResponse) ProtoReflect

func (x *SecretResponse) ProtoReflect() protoreflect.Message

func (*SecretResponse) Reset

func (x *SecretResponse) Reset()

func (*SecretResponse) String

func (x *SecretResponse) String() string

type SecretsClient

type SecretsClient interface {
	Read(ctx context.Context, in *SecretRequest, opts ...grpc.CallOption) (*SecretResponse, error)
}

SecretsClient is the client API for Secrets service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

Secrets reads only logical names granted by the configured provider. Store paths are resolved by Atmos; plugins cannot request arbitrary store keys.

func NewSecretsClient

func NewSecretsClient(cc grpc.ClientConnInterface) SecretsClient

type SecretsServer

type SecretsServer interface {
	Read(context.Context, *SecretRequest) (*SecretResponse, error)
	// contains filtered or unexported methods
}

SecretsServer is the server API for Secrets service. All implementations must embed UnimplementedSecretsServer for forward compatibility.

Secrets reads only logical names granted by the configured provider. Store paths are resolved by Atmos; plugins cannot request arbitrary store keys.

type UnimplementedBrowserServer

type UnimplementedBrowserServer struct{}

UnimplementedBrowserServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedBrowserServer) Listen

func (UnimplementedBrowserServer) Open

type UnimplementedCredentialsServer

type UnimplementedCredentialsServer struct{}

UnimplementedCredentialsServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedCredentialsServer) Delete

func (UnimplementedCredentialsServer) Get

func (UnimplementedCredentialsServer) Put

type UnimplementedHTTPServer

type UnimplementedHTTPServer struct{}

UnimplementedHTTPServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedHTTPServer) Do

type UnimplementedSecretsServer

type UnimplementedSecretsServer struct{}

UnimplementedSecretsServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedSecretsServer) Read

type UnsafeBrowserServer

type UnsafeBrowserServer interface {
	// contains filtered or unexported methods
}

UnsafeBrowserServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BrowserServer will result in compilation errors.

type UnsafeCredentialsServer

type UnsafeCredentialsServer interface {
	// contains filtered or unexported methods
}

UnsafeCredentialsServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CredentialsServer will result in compilation errors.

type UnsafeHTTPServer

type UnsafeHTTPServer interface {
	// contains filtered or unexported methods
}

UnsafeHTTPServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to HTTPServer will result in compilation errors.

type UnsafeSecretsServer

type UnsafeSecretsServer interface {
	// contains filtered or unexported methods
}

UnsafeSecretsServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to SecretsServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL