Skip to content

Commit 9d3fb1f

Browse files
committed
feat: get started
1 parent e4cdf48 commit 9d3fb1f

88 files changed

Lines changed: 1113 additions & 2 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Continuous Integration
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
push:
8+
branches:
9+
- master
10+
11+
jobs:
12+
ci:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v5
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Install the JSON Schema CLI
21+
uses: sourcemeta/jsonschema@v11.5.1
22+
23+
- name: Validate Service Schema
24+
run: jsonschema validate ./schema.json ./services/*.json

.vscode/settings.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"json.schemas": [
3+
{
4+
"fileMatch": [
5+
"services/*.json"
6+
],
7+
"url": "./schema.json"
8+
}
9+
],
10+
"json.validate.enable": true,
11+
"editor.defaultFormatter": "vscode.json-language-features",
12+
"editor.formatOnSave": true
13+
}

README.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,54 @@
1-
# dns-services
2-
A collection of services with the corresponding domains
1+
<p align="center">
2+
<img alt="Securepoint" title="Securepoint" src="assets/logo.svg" width="100px" height="100px">
3+
</p>
4+
5+
6+
# Securepoint DNS Services
7+
8+
A collection of services with the corresponding domains used in our product "Cloud Shield".
9+
10+
## Overview
11+
12+
This repository contains JSON definitions for various services and their associated domains that are used by Cloud Shield. Each service is defined in a separate JSON file that follows a standardized schema to ensure consistency and reliability.
13+
14+
## Repository Structure
15+
16+
```
17+
dns-services/
18+
├── README.md
19+
├── schema.json # JSON schema defining the service structure
20+
└── services/ # Directory containing all service definitions
21+
├── service1.json
22+
├── service2.json
23+
└── ...
24+
```
25+
26+
## Adding New Services
27+
28+
To add a new service:
29+
30+
1. Create a new JSON file in the `services` directory
31+
2. Follow the structure defined in `schema.json`
32+
3. Include all required fields and adhere to the specified formats
33+
4. Use a descriptive filename that clearly identifies the service
34+
5. Validate your JSON against the schema before submitting
35+
36+
37+
> [!WARNING]
38+
> **DO NOT change existing file names once they are merged into the repository.**
39+
>
40+
> File names serve as unique identifiers within Cloud Shield.
41+
> Pull requests that change file names will be rejected.
42+
43+
## Contributing
44+
45+
We welcome contributions to this project!
46+
If you have suggestions for new services or improvements, please open an issue or submit a pull request.
47+
48+
### Reporting Issues
49+
- Use GitHub Issues to report problems with existing services
50+
- Include detailed information about the issue
51+
52+
## License
53+
54+
MIT License

assets/logo.svg

Lines changed: 1 addition & 0 deletions
Loading

schema.json

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"type": "object",
4+
"properties": {
5+
"name": {
6+
"type": "string",
7+
"description": "The name of the service"
8+
},
9+
"description": {
10+
"type": "string",
11+
"description": "A brief description of the service"
12+
},
13+
"favicon": {
14+
"type": "string",
15+
"description": "URL to the service's favicon"
16+
},
17+
"domains": {
18+
"type": "array",
19+
"description": "A list of domains associated with the service",
20+
"items": {
21+
"type": "string",
22+
"pattern": "^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$"
23+
}
24+
},
25+
"patterns": {
26+
"type": "array",
27+
"description": "A list of regex patterns to match domains",
28+
"items": {
29+
"type": "string"
30+
}
31+
}
32+
},
33+
"required": [
34+
"name",
35+
"description"
36+
],
37+
"anyOf": [
38+
{
39+
"required": [
40+
"domains"
41+
]
42+
},
43+
{
44+
"required": [
45+
"patterns"
46+
]
47+
},
48+
{
49+
"required": [
50+
"domains",
51+
"patterns"
52+
]
53+
}
54+
],
55+
"additionalProperties": false
56+
}

services/9gag.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "9GAG",
3+
"description": "A social media platform for sharing humorous content and memes",
4+
"favicon": "https://example.com/favicon.ico",
5+
"domains": [
6+
"9cache.com",
7+
"9gag.com"
8+
]
9+
}

services/airbnb.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "Airbnb",
3+
"description": "A vacation rental service.",
4+
"favicon": "https://example.com/favicon.ico",
5+
"patterns": [
6+
"^([a-zA-Z0-9-]+\\.)*airbnb\\.([a-zA-Z0-9.-]+)$"
7+
]
8+
}

services/ali-express.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "AliExpress",
3+
"description": "An online retail service based in China.",
4+
"favicon": "https://example.com/favicon.ico",
5+
"patterns": [
6+
"^([a-zA-Z0-9-]+\\.)*aliexpress\\.([a-zA-Z0-9.-]+)$"
7+
]
8+
}

services/alibaba.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "Alibaba",
3+
"description": "An online retail service.",
4+
"favicon": "https://example.com/favicon.ico",
5+
"domains": [
6+
"alibaba.com"
7+
]
8+
}

services/amazon.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "Amazon",
3+
"description": "An online shopping platform",
4+
"favicon": "https://example.com/favicon.ico",
5+
"domains": [
6+
"amazon.ae",
7+
"amazon.ca",
8+
"amazon.cn",
9+
"amazon.co.jp",
10+
"amazon.co.uk",
11+
"amazon.com",
12+
"amazon.com.au",
13+
"amazon.com.br",
14+
"amazon.com.mx",
15+
"amazon.com.tr",
16+
"amazon.de",
17+
"amazon.es",
18+
"amazon.fr",
19+
"amazon.in",
20+
"amazon.it",
21+
"amazon.nl",
22+
"amazon.sa",
23+
"amazon.sg",
24+
"amazon.pl",
25+
"amzn.ae",
26+
"amzn.com",
27+
"amzn.in",
28+
"amzn.sg"
29+
]
30+
}

0 commit comments

Comments
 (0)