Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - OneSkySystems/dss: This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs with no details about UAS operations stored or processed on the DSS. · GitHub
Skip to content

Repository files navigation

USS to USS Communication and Synchronization Build StatusGoDoc

This repository contains a simple and open service used by separate UAS Service Suppliers (USSs), often in different organizations, to communicate information about UAS operations and coordinate with each other. This service is a Discovery and Synchronization Service (DSS) as described in the ASTM remote ID standard. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share information while protecting operator and consumer privacy. The system is focused on facilitating communication amongst actively operating USSs without details about UAS operations stored or processed in the DSS.

Concepts

Conceptual background on the DSS and services it supports may be found here.

Simplified architecture

Overview

Simplified architecture diagram

A "DSS Region" consists of one or more DSS instances sharing the same DSS Airspace Representation (DAR) by forming a single CockroachDB cluster. In the simplified diagram above, two DSS instances share the same DAR via CRDB certificates and configuration which means the two HTTPS frontends may be used interchangeably. USS 1 chooses to use only instance 1 while USS 2 uses both instances for improved resilience to failures.

HTTPS frontend

Serves as an HTTPS gateway to the business logic, translating between HTTPS request and gRPC to allow users to communicate to the DSS via simple HTTPS calls. This code is currently generated via grpc-gateway, and does not do much other than translation. See the API specification here.

gRPC backend

Component responsible for all the business logic as well as authentication. This backend talks directly to CockroachDB.

CockroachDB (CRDB)

Individual CockroachDB nodes hosting sharded data of the DAR. More information about CockroachDB here.

DB Manager

Component responsible for performing orderly database schema migrations, including database bootstrapping. Invoked automatically on first run along with the CRDB cluster-init job, or when requested manually by a user.

Directories of Interest:

  • build/ has all of the configuration required to build and deploy a DSS instance. The README in that directory contains more information.
  • pkg/ contains all of the source code for the DSS. See the README in that directory for more information.
  • cmds/ contains entry points and docker files for the actual binaries (the http-gateway and grpc-backend)
  • test/ contains some tests; see the README for more information about testing.

Detailed introduction to the repository

If you are new to the project, read this document to get a long form introduction about repository structure

Notes

  • The current implementation relies on CockroachDB for data storage and synchronization between DSS participants. See implementation details for more information.

About

This repository contains a simple, open, and scalable API used for separate UAS Service Suppliers (USS) to communicate during UAS operations as a Discovery and Synchronization Service (DSS) in accordance with ASTM WK65041. This flexible and distributed system is used to connect multiple USSs operating in the same general area to share safety infor…

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages