You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: CHANGELOG.md
+1
Original file line number
Diff line number
Diff line change
@@ -51,6 +51,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
51
51
* An error was fixed in the appD schema where launch details sub-schemas were combined with `oneOf`, rather than `anyOf`. This causes validation errors for web or online native apps as their details elements overlap on a `url` field. ([#1034](https://github.com/finos/FDC3/pull/1034))
52
52
* The appD `icon` and `screenshot` sub-schemas were updated to require the `src` value is set and restrict additional values, ensuring that common mistakes (such as ussing a `url` rather than `src` field are caught by the schemas when used to validate. ([#1037](https://github.com/finos/FDC3/pull/1037))
53
53
* Linting, spell checking other corrections were applied to markdown syntax throughout the FDC3 documentation ([#1032](https://github.com/finos/FDC3/pull/1032))
54
+
* Corrected bad example URLs in the App Directory overview/discovery page in the current and past versions as they did not agree with the paths provided in the API specification and OpenAPI schema. ([#1060](https://github.com/finos/FDC3/pull/1060))
Copy file name to clipboardexpand all lines: docs/app-directory/overview.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -103,15 +103,15 @@ Fully qualified appIds may be used to locate the appD instance hosting the appli
103
103
104
104
### Shrinking the URI
105
105
106
-
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID `app1@appd.foo.com` is represented as `app1` within the application directory. As a result a launcher can use a shortened URI construct `https://appd.foo.com/api/appd/v2/app1` to resolve the application data vs `https://appd.foo.com/api/appd/v2/app1@appd.foo.com`.
106
+
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID `app1@appd.foo.com` is represented as `app1` within the application directory. As a result a launcher can use a shortened URI construct `https://appd.foo.com/api/appd/v2/apps/app1` to resolve the application data vs `https://appd.foo.com/api/appd/v2/apps/app1@appd.foo.com`.
107
107
108
108
## Service Discovery
109
109
110
110
In order to support the discovery of applications that can be used with a Desktop Agent, it is necessary to access data stored in one or more app directory instances.
111
111
112
112

113
113
114
-
However, in order to do so, you must first discover the location of an app directory service, which you may then use to generate URIs (e.g. `https://appd.foo.com/api/appd/v2/app1@appd.foo.com`) to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required.
114
+
However, in order to do so, you must first discover the location of an app directory service, which you may then use to generate URIs (e.g. `https://appd.foo.com/api/appd/v2/apps/app1@appd.foo.com`) to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required.
115
115
116
116
Three methods for discovering app directory services are defined in this Standard:
117
117
@@ -136,9 +136,9 @@ A launcher can then easily construct a URI by:
136
136
1. URI protocol is defaulted to `https`, but can be overridden by the launcher.
137
137
2. URI hostname is the fully qualified domain of the application ID.
138
138
3. URI port is default `https/443`, but can be overridden by the launcher
139
-
4. URI url is by default `/api/appd/(version)` . Calls that are made without version MUST automatically default to latest, i.e. `/api/appd/app1` should return the same result as `/api/appd/v2/app1".
139
+
4. URI url is by default `/api/appd/(version)/apps` . Calls that are made without version MUST automatically default to latest, i.e. `/api/appd/apps/app1` should return the same result as `/api/appd/v2/apps/app1".
140
140
141
-
The resulting URI to retrieve application data for `app1` would be <https://appd.foo.com/api/appd/v2/app1@appd.foo.com>
141
+
The resulting URI to retrieve application data for `app1` would be <https://appd.foo.com/api/appd/v2/apps/app1@appd.foo.com>
Copy file name to clipboardexpand all lines: website/versioned_docs/version-1.0/app-directory/overview.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -102,15 +102,15 @@ Fully qualified appIds may be used to locate the appD instance hosting the appli
102
102
103
103
### Shrinking the URI
104
104
105
-
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID "app1@appd.foo.com" is represented as "app1" within the application directory. As a result a launcher can use a shortened URI construct `"https://appd.foo.com/api/appd/v2/app1"` to resolve the application data vs `"https://appd.foo.com/api/appd/v2/app1@appd.foo.com"`.
105
+
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID "app1@appd.foo.com" is represented as "app1" within the application directory. As a result a launcher can use a shortened URI construct `"https://appd.foo.com/api/appd/v1/apps/app1"` to resolve the application data vs `"https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com"`.
106
106
107
107
## Service Discovery
108
108
109
109
In order to support the discovery of applications that can be used with a Desktop Agent, it is necessary to access data stored in one or more app directory instances.
110
110
111
111

112
112
113
-
However, in order to do so, you must first discover the location of an app directory service, which you may then use to generate URIs (e.g. "https://appd.foo.com/api/appd/v2/app1@appd.foo.com") to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required.
113
+
However, in order to do so, you must first discover the location of an app directory service, which you may then use to generate URIs (e.g. "https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com") to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required.
114
114
115
115
Three methods for discovering app directory services are defined in this Standard:
116
116
@@ -135,9 +135,9 @@ A launcher can then easily construct a URI by:
135
135
1. URI protocol is defaulted to `https`, but can be overridden by the launcher.
136
136
2. URI hostname is the fully qualified domain of the application ID.
137
137
3. URI port is default `https/443`, but can be overridden by the launcher
138
-
4. URI url is by default `"/api/appd/(version)"` . Calls that are made without version MUST automatically default to latest, i.e. `"/api/appd/app1"` should return the same result as `"/api/appd/v2/app1"`.
138
+
4. URI url is by default `"/api/appd/(version)/apps"` . Calls that are made without version MUST automatically default to latest, i.e. `"/api/appd/apps/app1"` should return the same result as `"/api/appd/v1/apps/app1"`.
139
139
140
-
The resulting URI to retrieve application data for "app1" would be "[https://appd.foo.com/api/appd/v2/app1@appd.foo.com](https://appd.foo.com/api/appd/v2/app1@appd.foo.com)"
140
+
The resulting URI to retrieve application data for "app1" would be "[https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com](https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com)"
Copy file name to clipboardexpand all lines: website/versioned_docs/version-1.1/app-directory/discovery.md
+10-10
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ In order to support the discovery of application data stored in a given director
28
28
- AppD service host discovery implementations should support the following requirements;
29
29
1. Discovery of the AppD location using the fully qualified application ID domain name. This would be the fqdn part of the email structure.
30
30
2. Discovery of the AppD location using the fully qualified application ID domain name to lookup DNS SRV records identifying the host server location and access TCP port. ([RFC2782](https://tools.ietf.org/html/rfc2782) )
31
-
3. Statically defined URI records for use within client applications directly. This is similar to #1 above, but provides explicit protocol, port and url definitions as part of the defintion.
31
+
3. Statically defined URI records for use within client applications directly. This is similar to #1 above, but provides explicit protocol, port and url definitions as part of the defintion.
32
32
33
33
**Examples:**
34
34
@@ -42,7 +42,7 @@ AppD Service distribution visual:
42
42
43
43
## Application data discovery
44
44
45
-
Application data discovery shall be accessible through a unique application identifier (AppId) representing a single application represented by a nested namespace syntax using dot notation and email address construction (**name@fqdn**) defining the application identifier as the name part and AppD location as the fully qualified domain name part. The entire address should be considered the fully qualified application ID.
45
+
Application data discovery shall be accessible through a unique application identifier (AppId) representing a single application represented by a nested namespace syntax using dot notation and email address construction (**name@fqdn**) defining the application identifier as the name part and AppD location as the fully qualified domain name part. The entire address should be considered the fully qualified application ID.
46
46
47
47
**Example:**
48
48
@@ -92,24 +92,24 @@ getAppData("app@sub.root")
92
92
93
93
## Service Discovery (Expanded)
94
94
95
-
The following represents the three ways AppD service instances should be discovered over a given network. Again, the view is that AppD services are distributed/decoupled based on associated application namespace on a given network. This takes into account the use of the application identifiers described in previous section. A launcher is required to use a URI (e.g. "https://appd.foo.com/api/appd/app1@appd.foo.com") to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required. This proposal focuses on the following approaches to achieve this resolution.
95
+
The following represents the three ways AppD service instances should be discovered over a given network. Again, the view is that AppD services are distributed/decoupled based on associated application namespace on a given network. This takes into account the use of the application identifiers described in previous section. A launcher is required to use a URI (e.g. "https://appd.foo.com/api/appd/apps/app1@appd.foo.com") to query a given directory instance for data. In order to construct a URI, the host location and port of a given AppD service instance is required. This proposal focuses on the following approaches to achieve this resolution.
96
96
97
97
### Application ID namespace syntax host resolution
98
98
99
-
An application directory URI can be constructed using a fully qualified application ID (email address syntax) by using fqdn part of the ID as the host location and the name part as the application name. Given an application name "app1" with a fully qualified identifier of "app1@appd.foo.com" an application directory host location can be derived by simply extracting the fqdn "appd.foo.com" from the email syntax. The extracted fqdn "app.foo.com" may resolve to the actual host location where the application directory is running.
99
+
An application directory URI can be constructed using a fully qualified application ID (email address syntax) by using fqdn part of the ID as the host location and the name part as the application name. Given an application name "app1" with a fully qualified identifier of "app1@appd.foo.com" an application directory host location can be derived by simply extracting the fqdn "appd.foo.com" from the email syntax. The extracted fqdn "app.foo.com" may resolve to the actual host location where the application directory is running.
100
100
101
-
A launcher can then easily construct a URI by;
101
+
A launcher can then easily construct a URI by;
102
102
103
-
1. URI protocol is defaulted to https, but can be overridden by the launcher.
103
+
1. URI protocol is defaulted to https, but can be overridden by the launcher.
104
104
2. URI hostname is the fully qualified domain of the application ID.
105
105
3. URI port is default https/443, but can be overridden by the launcher
106
-
4. URI url is by default "/api/**(service)/(version)" .** It is recommended that we identify service label as "**appd**" with version being optional. Calls that are made without version automatically default to latest "/api/appd/app1" vs "/api/appd/v1/app1"
106
+
4. URI url is by default "/api/**(service)/(version)/apps" .** It is recommended that we identify service label as "**appd**" with version being optional. Calls that are made without version automatically default to latest "/api/appd/apps/app1" vs "/api/appd/v1/apps/app1"
107
107
108
-
The resulting URI to retrieve application data for "app1" would be "[https://appd.foo.com/api/appd/v1/app1@appd.foo.com](https://appd.foo.com/api/appd/v1/app1.appd.foo.com)"
108
+
The resulting URI to retrieve application data for "app1" would be "[https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com](https://appd.foo.com/api/appd/v1/apps/app1.appd.foo.com)"
109
109
110
-
### Application identifiers, Shrinking the URI and AppdD defaults
110
+
### Application identifiers, Shrinking the URI and AppdD defaults
111
111
112
-
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID "app1@appd.foo.com" is represented as "app1" within the application directory. As a result a launcher can use a shortened URI construct "<https://appd.foo.com/api/appd/v1/app1>" to resolve the application data vs "https://appd.foo.com/api/appd/v1/app1@appd.foo.com".
112
+
Although the concept of fully qualified application IDs are useful in resolving the actual host of the application directory, there is no requirement for an application directory to use this fully qualified application ID as the resolver for a record. An application ID is unique to given application directory, but there is no requirement to use the fully qualified representation when querying an interface. Taking the prior example, the fully qualified application ID "app1@appd.foo.com" is represented as "app1" within the application directory. As a result a launcher can use a shortened URI construct "<https://appd.foo.com/api/appd/v1/apps/app1>" to resolve the application data vs "https://appd.foo.com/api/appd/v1/apps/app1@appd.foo.com".
0 commit comments