├── .dockerignore ├── .editorconfig ├── .github └── workflows │ ├── ci.yml │ ├── docker-cd-master.yml │ └── docker-cd-tag.yml ├── .gitignore ├── .media ├── gh-banner-project.afphoto └── gh-banner-rendered.png ├── .prettierrc.yml ├── CacheAccessLayer ├── CacheAccessLayer.csproj ├── ICacheAccess.cs └── Modules │ └── RedisCacheModule.cs ├── DatabaseAccessLayer ├── DatabaseAccess.cs ├── DatabaseAccessLayer.csproj ├── DatabaseContext.cs ├── IDatabaseAccess.cs └── Models │ ├── AccessModel.cs │ ├── ApiKeyModel.cs │ ├── EntityModel.cs │ ├── LinkModel.cs │ ├── Permissions.cs │ └── UserModel.cs ├── Gateway.Test ├── Gateway.Test.csproj ├── Services │ ├── Authorization │ │ └── JwtAuthorizationServiceTest.cs │ ├── Hashing │ │ ├── Argon2HashingServiceTest.cs │ │ ├── HasherTestBase.cs │ │ ├── Sha1HashingServiceTest.cs │ │ └── Sha512HashingServiceTest.cs │ └── InitializationServiceTest.cs └── Util │ ├── FlowUtilTest.cs │ ├── LinksUtilTest.cs │ └── RandomUtilTest.cs ├── Gateway ├── Constants.cs ├── Controllers │ ├── AuthorizedControllerBase.cs │ ├── Endpoints │ │ ├── ApiKeyController.cs │ │ ├── AuthController.cs │ │ ├── LinksController.cs │ │ ├── RedirectionController.cs │ │ └── UsersController.cs │ └── IAuthorizedController.cs ├── Dockerfile ├── Filter │ ├── ProxyAddress.cs │ ├── RequiresAuth.cs │ └── RequiresPermission.cs ├── Gateway.csproj ├── Migrations │ ├── 20210410083541_Initialization.Designer.cs │ ├── 20210410083541_Initialization.cs │ └── DatabaseContextModelSnapshot.cs ├── Models │ ├── ApiKeyViewModel.cs │ ├── CountResponseModel.cs │ ├── LinkCreateModel.cs │ ├── LinkUpdateModel.cs │ ├── LinkViewModel.cs │ ├── LoginModel.cs │ ├── ResponseErrorModel.cs │ ├── UpdateSelfUserModel.cs │ ├── UserCreateModel.cs │ ├── UserUpdateModel.cs │ └── UserViewModel.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Services │ ├── Authorization │ │ ├── AuthClaims.cs │ │ ├── IAuthorizationService.cs │ │ └── JwtAuthorizationService.cs │ ├── Hashing │ │ ├── Argon2HashingService.cs │ │ ├── Base64HashEncoder.cs │ │ ├── IApiKeyHashingService.cs │ │ ├── IHashingService.cs │ │ ├── IPasswordHashingService.cs │ │ ├── Sha1HashingService.cs │ │ └── Sha512HashingService.cs │ └── InitializationService.cs ├── Startup.cs ├── Util │ ├── FlowUtil.cs │ ├── LinksUtil.cs │ └── RandomUtil.cs └── appsettings.json ├── LICENSE ├── README.md ├── docker-compose.yml ├── export-swagger-json.sh └── vctr.sln /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/docker-cd-master.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.github/workflows/docker-cd-master.yml -------------------------------------------------------------------------------- /.github/workflows/docker-cd-tag.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.github/workflows/docker-cd-tag.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.gitignore -------------------------------------------------------------------------------- /.media/gh-banner-project.afphoto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.media/gh-banner-project.afphoto -------------------------------------------------------------------------------- /.media/gh-banner-rendered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.media/gh-banner-rendered.png -------------------------------------------------------------------------------- /.prettierrc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/.prettierrc.yml -------------------------------------------------------------------------------- /CacheAccessLayer/CacheAccessLayer.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/CacheAccessLayer/CacheAccessLayer.csproj -------------------------------------------------------------------------------- /CacheAccessLayer/ICacheAccess.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/CacheAccessLayer/ICacheAccess.cs -------------------------------------------------------------------------------- /CacheAccessLayer/Modules/RedisCacheModule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/CacheAccessLayer/Modules/RedisCacheModule.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/DatabaseAccess.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/DatabaseAccess.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/DatabaseAccessLayer.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/DatabaseAccessLayer.csproj -------------------------------------------------------------------------------- /DatabaseAccessLayer/DatabaseContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/DatabaseContext.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/IDatabaseAccess.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/IDatabaseAccess.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/AccessModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/AccessModel.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/ApiKeyModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/ApiKeyModel.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/EntityModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/EntityModel.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/LinkModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/LinkModel.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/Permissions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/Permissions.cs -------------------------------------------------------------------------------- /DatabaseAccessLayer/Models/UserModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/DatabaseAccessLayer/Models/UserModel.cs -------------------------------------------------------------------------------- /Gateway.Test/Gateway.Test.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Gateway.Test.csproj -------------------------------------------------------------------------------- /Gateway.Test/Services/Authorization/JwtAuthorizationServiceTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/Authorization/JwtAuthorizationServiceTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Services/Hashing/Argon2HashingServiceTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/Hashing/Argon2HashingServiceTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Services/Hashing/HasherTestBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/Hashing/HasherTestBase.cs -------------------------------------------------------------------------------- /Gateway.Test/Services/Hashing/Sha1HashingServiceTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/Hashing/Sha1HashingServiceTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Services/Hashing/Sha512HashingServiceTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/Hashing/Sha512HashingServiceTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Services/InitializationServiceTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Services/InitializationServiceTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Util/FlowUtilTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Util/FlowUtilTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Util/LinksUtilTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Util/LinksUtilTest.cs -------------------------------------------------------------------------------- /Gateway.Test/Util/RandomUtilTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway.Test/Util/RandomUtilTest.cs -------------------------------------------------------------------------------- /Gateway/Constants.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Constants.cs -------------------------------------------------------------------------------- /Gateway/Controllers/AuthorizedControllerBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/AuthorizedControllerBase.cs -------------------------------------------------------------------------------- /Gateway/Controllers/Endpoints/ApiKeyController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/Endpoints/ApiKeyController.cs -------------------------------------------------------------------------------- /Gateway/Controllers/Endpoints/AuthController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/Endpoints/AuthController.cs -------------------------------------------------------------------------------- /Gateway/Controllers/Endpoints/LinksController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/Endpoints/LinksController.cs -------------------------------------------------------------------------------- /Gateway/Controllers/Endpoints/RedirectionController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/Endpoints/RedirectionController.cs -------------------------------------------------------------------------------- /Gateway/Controllers/Endpoints/UsersController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/Endpoints/UsersController.cs -------------------------------------------------------------------------------- /Gateway/Controllers/IAuthorizedController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Controllers/IAuthorizedController.cs -------------------------------------------------------------------------------- /Gateway/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Dockerfile -------------------------------------------------------------------------------- /Gateway/Filter/ProxyAddress.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Filter/ProxyAddress.cs -------------------------------------------------------------------------------- /Gateway/Filter/RequiresAuth.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Filter/RequiresAuth.cs -------------------------------------------------------------------------------- /Gateway/Filter/RequiresPermission.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Filter/RequiresPermission.cs -------------------------------------------------------------------------------- /Gateway/Gateway.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Gateway.csproj -------------------------------------------------------------------------------- /Gateway/Migrations/20210410083541_Initialization.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Migrations/20210410083541_Initialization.Designer.cs -------------------------------------------------------------------------------- /Gateway/Migrations/20210410083541_Initialization.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Migrations/20210410083541_Initialization.cs -------------------------------------------------------------------------------- /Gateway/Migrations/DatabaseContextModelSnapshot.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Migrations/DatabaseContextModelSnapshot.cs -------------------------------------------------------------------------------- /Gateway/Models/ApiKeyViewModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/ApiKeyViewModel.cs -------------------------------------------------------------------------------- /Gateway/Models/CountResponseModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/CountResponseModel.cs -------------------------------------------------------------------------------- /Gateway/Models/LinkCreateModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/LinkCreateModel.cs -------------------------------------------------------------------------------- /Gateway/Models/LinkUpdateModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/LinkUpdateModel.cs -------------------------------------------------------------------------------- /Gateway/Models/LinkViewModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/LinkViewModel.cs -------------------------------------------------------------------------------- /Gateway/Models/LoginModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/LoginModel.cs -------------------------------------------------------------------------------- /Gateway/Models/ResponseErrorModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/ResponseErrorModel.cs -------------------------------------------------------------------------------- /Gateway/Models/UpdateSelfUserModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/UpdateSelfUserModel.cs -------------------------------------------------------------------------------- /Gateway/Models/UserCreateModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/UserCreateModel.cs -------------------------------------------------------------------------------- /Gateway/Models/UserUpdateModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/UserUpdateModel.cs -------------------------------------------------------------------------------- /Gateway/Models/UserViewModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Models/UserViewModel.cs -------------------------------------------------------------------------------- /Gateway/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Program.cs -------------------------------------------------------------------------------- /Gateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Properties/launchSettings.json -------------------------------------------------------------------------------- /Gateway/Services/Authorization/AuthClaims.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Authorization/AuthClaims.cs -------------------------------------------------------------------------------- /Gateway/Services/Authorization/IAuthorizationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Authorization/IAuthorizationService.cs -------------------------------------------------------------------------------- /Gateway/Services/Authorization/JwtAuthorizationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Authorization/JwtAuthorizationService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/Argon2HashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/Argon2HashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/Base64HashEncoder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/Base64HashEncoder.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/IApiKeyHashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/IApiKeyHashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/IHashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/IHashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/IPasswordHashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/IPasswordHashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/Sha1HashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/Sha1HashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/Hashing/Sha512HashingService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/Hashing/Sha512HashingService.cs -------------------------------------------------------------------------------- /Gateway/Services/InitializationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Services/InitializationService.cs -------------------------------------------------------------------------------- /Gateway/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Startup.cs -------------------------------------------------------------------------------- /Gateway/Util/FlowUtil.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Util/FlowUtil.cs -------------------------------------------------------------------------------- /Gateway/Util/LinksUtil.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Util/LinksUtil.cs -------------------------------------------------------------------------------- /Gateway/Util/RandomUtil.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/Util/RandomUtil.cs -------------------------------------------------------------------------------- /Gateway/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/Gateway/appsettings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /export-swagger-json.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/export-swagger-json.sh -------------------------------------------------------------------------------- /vctr.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vctr-sls/vctr/HEAD/vctr.sln --------------------------------------------------------------------------------