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: website/docs/architecture/Architecture.md
+25-25Lines changed: 25 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ GitProxy has several main components:
10
10
11
11
- HTTP Proxy Express app (`/src/proxy`): The actual proxy server for Git. Git operations performed by users are intercepted here, processed by various Express middleware (such as URL rewriting) and applies the relevant **chain** of actions to the payload. Customized functionality in the form of **plugins** are inserted and added to this chain as well.
12
12
- Chain: A set of **processors** that are applied to an action (i.e. a `git push` operation) before requesting review from a user with permission to approve pushes
13
-
- Processor: AKA `Step`. A specific step in the chain where certain rules are applied. See the [list of default processors](./Processors.md) for more details.`
13
+
- Processor: AKA `Step`. A specific step in the chain where certain rules are applied. See the [list of default processors](./processors.md) for more details.`
14
14
- Plugin: A custom processor that can be added externally to extend GitProxy's default policies. See the [plugin guide](https://git-proxy.finos.org/docs/development/plugins) for more details.
15
15
- Backend-for-frontend (BFF) Service API, Express app (`/src/service`): Handles UI requests, user authentication to GitProxy (not to Git), database operations and some of the logic for rejection/approval. Runs by default on port `8080`, and can be configured with the `GIT_PROXY_UI_HOST` and `GIT_PROXY_UI_PORT` environment variables.
16
16
- Passport: The [library](https://www.passportjs.org/) used to authenticate to the GitProxy API (not the proxy itself - this depends on the Git `user.email`). Supports multiple authentication methods by default ([Local](#local), [AD](#activedirectory), [OIDC](#openid-connect)).
@@ -53,9 +53,9 @@ Don't forget to save and update the attached .drawio (XML)! -->
53
53
Three types of policies can be applied to incoming pushes:
54
54
55
55
- Default policies: These are already present in the GitProxy pull/push chain and require modifying source code to change their behaviour.
56
-
- For example, [`checkUserPushPermission`](./Processors.md#checkuserpushpermission) which simply checks if the pusher's email exists in the GitProxy database, and if their user is marked in the "Contributors" list (`canPush`) for the repository they're trying to push to.
56
+
- For example, [`checkUserPushPermission`](./processors.md#checkuserpushpermission) which simply checks if the pusher's email exists in the GitProxy database, and if their user is marked in the "Contributors" list (`canPush`) for the repository they're trying to push to.
57
57
- Configurable policies: These are policies that can be easily configured through the GitProxy config (`proxy.config.json` or a custom file).
58
-
- For example, [`checkCommitMessages`](./Processors.md#checkcommitmessages) which reads the configuration and matches the string patterns provided with the commit messages in the push in order to block it.
58
+
- For example, [`checkCommitMessages`](./processors.md#checkcommitmessages) which reads the configuration and matches the string patterns provided with the commit messages in the push in order to block it.
59
59
- Custom policies:
60
60
- Plugins: Push/pull plugins provide more flexibility for implementing an organization's rules. For more information, see the [guide on writing your own plugins](https://git-proxy.finos.org/docs/development/plugins).
61
61
- Processors: Custom logic may require specific data within a push that isn't available at the end of the chain (where plugins are executed). In this case, the appropriate solution is to write a processor and add it to the correct place in the chain.
@@ -64,7 +64,7 @@ Three types of policies can be applied to incoming pushes:
64
64
65
65
### Pre-processors
66
66
67
-
Pre-processors run before executing the chain. Currently, only executes [`parseAction`](./Processors.md#parseaction), which is in charge of classifying requests as push/pull/default and creating the `Action` object used by the chain.
67
+
Pre-processors run before executing the chain. Currently, only executes [`parseAction`](./processors.md#parseaction), which is in charge of classifying requests as push/pull/default and creating the `Action` object used by the chain.
68
68
69
69
### Action Chains
70
70
@@ -74,45 +74,45 @@ Action chains are a list of processors that a Git operation goes through before
74
74
75
75
Executed when a user makes a `git push` to GitProxy. These are the actions in `pushActionChain`, by order of execution:
At present, the pull action chain is only checking that the repository is configured in GitProxy. This ensures it will block pull requests for unknown repositories.
100
100
101
101
#### Default action chain
102
102
103
103
This chain is executed when making any operation other than a `git push` or `git pull`.
The default action chain, much like the pull chain, is only checking that the repository is configured in GitProxy. This ensures it will block all git client requests for unknown repositories.
108
108
109
109
### Post-processors
110
110
111
-
After processors in the chain are done executing, [`audit`](./Processors.md#audit) is called to store the action along with all of its execution steps in the database for auditing purposes.
111
+
After processors in the chain are done executing, [`audit`](./processors.md#audit) is called to store the action along with all of its execution steps in the database for auditing purposes.
112
112
113
-
If [`pullRemote`](./Processors.md#pullremote) ran successfully and cloned the repository, then [`clearBareClone`](./Processors.md#clearbareclone) is run to clear up that clone, freeing disk space and ensuring that the _.remote/\*_ folder created does not conflict with any future pushes involving the same SHA.
113
+
If [`pullRemote`](./processors.md#pullremote) ran successfully and cloned the repository, then [`clearBareClone`](./processors.md#clearbareclone) is run to clear up that clone, freeing disk space and ensuring that the _.remote/\*_ folder created does not conflict with any future pushes involving the same SHA.
114
114
115
-
Finally, if the action was auto-approved or auto-rejected as a result of running [`preReceive`](./Processors.md#prereceive), it will attempt to auto-approve or auto-reject it.
115
+
Finally, if the action was auto-approved or auto-rejected as a result of running [`preReceive`](./processors.md#prereceive), it will attempt to auto-approve or auto-reject it.
116
116
117
117
### Authentication
118
118
@@ -224,7 +224,7 @@ Currently supports the following out-of-the-box:
224
224
225
225
#### `commitConfig`
226
226
227
-
Used in [`checkCommitMessages`](./Processors.md#checkcommitmessages), [`checkAuthorEmails`](./Processors.md#checkauthoremails) and [`scanDiff`](./Processors.md#scandiff) processors to block pushes depending on the given rules.
227
+
Used in [`checkCommitMessages`](./processors.md#checkcommitmessages), [`checkAuthorEmails`](./processors.md#checkauthoremails) and [`scanDiff`](./processors.md#scandiff) processors to block pushes depending on the given rules.
See the [Authentication](https://github.com/finos/git-proxy/blob/main/docs/Architecture.md#authentication) section of the architecture guide for more details.
129
+
See the [Authentication](https://github.com/finos/git-proxy/blob/main/website/architecture/architecture.md#authentication) section of the architecture guide for more details.
Copy file name to clipboardExpand all lines: website/docs/upgrading-to-v2.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,7 +93,7 @@ Changing the email address associated with commits can be accomplished via a num
93
93
-`checkEmptyBranch` simply checks whether the branch has had any new commits (if not, the push will be rejected)
94
94
- Added a settings page for configuring the JWT token to authenticate UI requests to API when `apiAuthentication` is enabled in [#1096](https://github.com/finos/git-proxy/pull/1096)
95
95
- Previously, requests from the UI were bypassing the JWT check if the user was logged in, and failing otherwise when `apiAuthentication` was set
96
-
- For more details on setting JWT, check the [architecture documentation](./architecture/Architecture.md#setting-up-jwt-authentication):
96
+
- For more details on setting JWT, check the [architecture documentation](./architecture/architecture.md#setting-up-jwt-authentication):
97
97
- Added the ability to create new users via the GitProxy CLI in [#981](https://github.com/finos/git-proxy/pull/981)
98
98
- Added `/healthcheck` endpoint for AWS Load Balancer support [#1197](https://github.com/finos/git-proxy/pull/1197)
99
99
- Improved login page flexibility, error handling and visibility of available auth methods in [#1227](https://github.com/finos/git-proxy/pull/1227)
0 commit comments