Initial project snapshot

This commit is contained in:
2026-04-28 22:29:50 +03:00
commit 8ba0561f4f
365 changed files with 91832 additions and 0 deletions
@@ -0,0 +1,10 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IBackendAuthClient
{
Task<AuthResultDto> LoginAsync(LoginRequest request, CancellationToken cancellationToken);
Task<AuthResultDto> RefreshAsync(RefreshRequest request, CancellationToken cancellationToken);
Task RevokeAuthSessionAsync(string userId, string authSessionId, string reason, CancellationToken cancellationToken);
}
@@ -0,0 +1,9 @@
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IBackendMessageException
{
string Code { get; }
string MessageKey { get; }
string FallbackMessage { get; }
string? TraceId { get; }
}
@@ -0,0 +1,8 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IBackendOrganizationClient
{
Task<IReadOnlyList<OrganizationDto>> GetOrganizationsAsync(string userId, CancellationToken cancellationToken);
}
@@ -0,0 +1,8 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IBackendResourceClient
{
Task<IReadOnlyList<ResourceDto>> GetResourcesAsync(string userId, string organizationId, CancellationToken cancellationToken);
}
@@ -0,0 +1,13 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IBackendSessionClient
{
Task<IReadOnlyList<RemoteSessionDto>> GetSessionsAsync(string userId, CancellationToken cancellationToken);
Task<SessionControlResultDto> StartSessionAsync(StartSessionRequest request, CancellationToken cancellationToken);
Task<SessionControlResultDto> AttachSessionAsync(string sessionId, AttachSessionRequest request, CancellationToken cancellationToken);
Task<SessionControlResultDto> DetachSessionAsync(string sessionId, DetachSessionRequest request, CancellationToken cancellationToken);
Task<SessionControlResultDto> TakeoverSessionAsync(string sessionId, TakeoverSessionRequest request, CancellationToken cancellationToken);
Task TerminateSessionAsync(string sessionId, TerminateSessionRequest request, CancellationToken cancellationToken);
}
@@ -0,0 +1,7 @@
namespace RemoteAccessPlatform.Windows.Contracts;
public interface IDeviceIdentityProvider
{
Task<string> GetOrCreateFingerprintAsync(CancellationToken cancellationToken);
Task<string> GetDeviceLabelAsync(CancellationToken cancellationToken);
}
@@ -0,0 +1,9 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface ILocalSettingsStore
{
Task<LocalClientSettings> LoadAsync(CancellationToken cancellationToken);
Task SaveAsync(LocalClientSettings settings, CancellationToken cancellationToken);
}
@@ -0,0 +1,27 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface ISessionGatewayClient
{
Task<ISessionGatewayConnection> ConnectAsync(
string attachToken,
DataPlaneOfferDto? dataPlane,
Func<LiveTransportEnvelopeDto, Task> onEnvelope,
Func<Exception?, Task> onClosed,
CancellationToken cancellationToken);
}
public interface ISessionGatewayConnection : IAsyncDisposable
{
bool IsConnected { get; }
string TransportKind { get; }
Task SendInputAsync(SessionInputEventDto inputEvent, CancellationToken cancellationToken);
Task SendClipboardTextAsync(string text, string origin, string contentHash, long sequenceId, CancellationToken cancellationToken);
Task SendFileUploadStartAsync(FileUploadStartDto upload, CancellationToken cancellationToken);
Task SendFileUploadChunkAsync(FileUploadChunkDto chunk, CancellationToken cancellationToken);
Task SendFileUploadCancelAsync(string transferId, CancellationToken cancellationToken);
Task SendFileDownloadStartAsync(FileDownloadStartDto download, CancellationToken cancellationToken);
Task SendFileDownloadAckAsync(FileDownloadAckDto ack, CancellationToken cancellationToken);
Task SendFileDownloadCancelAsync(string transferId, CancellationToken cancellationToken);
}
@@ -0,0 +1,10 @@
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Contracts;
public interface ITokenStore
{
Task<StoredAuthState?> LoadAsync(CancellationToken cancellationToken);
Task SaveAsync(StoredAuthState state, CancellationToken cancellationToken);
Task ClearAsync(CancellationToken cancellationToken);
}
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\RemoteAccessPlatform.Windows.Models\RemoteAccessPlatform.Windows.Models.csproj" />
</ItemGroup>
</Project>