State
[progress record]:
Proposed time: 2022/08/30
Discussion time: 2022/08/30
Accept/reject time: 2022/08/3
Complete time:
[issues]:
[email]: After creating the LKIP and writing the preliminary content, start a discussion on the LKIP proposal. Currently, the discussion must be initiated in the WeChat group [Apache Linkis Community Development Group], and the minutes can be sent to the official dev mailbox of linkis. The email address for the minutes can be placed here
[release]: The (planned) release version of Linkis
[proposer]:
Motivation & Background
At present, when linkis performs tasks, there is no association between IP addresses and users, which will cause users to continue to perform tasks under multiple IP addresses. In order to prevent this from happening, new IP address interception is added. Binding a user to prevent a user from having multiple IP addresses
Basic concept
Expect to achieve goals
- The linkis user needs to configure the IP address to bind with the user, and linkis will intercept the IP address according to the user's configuration.
Implementation plan
- By intercepting, obtain jobRequest, obtain user information, match the IP information configured by the user, and then intercept
- flow chart:
Function realization
1. Data cache
Cache the tenant tag table information (the principle is the same as that of the sensitive table intercepting cached data)
When the configuration table is updated, the cache is updated (increased)
2. Data configuration'
Add a new page for data configuration
Configuration relationship: One user-Creator can configure multiple IP addresses (demo: Hadoop – 10.224.22.22, 10.224.11.11, 10.122.32.32),
User can use *, IP can also use *, creator cannot be * (unique)
Compatibility, Deprecation and Migration Plans
Changes
Modification | Detail | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Modification of maven module | |||||||||||||||||||||||||||||||||||||||||
2 | Modification of HTTP interface |
| ||||||||||||||||||||||||||||||||||||||||
3 | Modification of the client interface | |||||||||||||||||||||||||||||||||||||||||
4 | Modification of database table structure | Add User_IP table
| ||||||||||||||||||||||||||||||||||||||||
5 | Modification of configuration item | |||||||||||||||||||||||||||||||||||||||||
6 | Modification Error code | |||||||||||||||||||||||||||||||||||||||||
7 | Modifications for Third Party Dependencies |
Compatibility, Deprecation, and Migration Plan
- What impact (if any) will there be on existing users?
- If we are changing behavior, how will we phase out the older behavior?
- If we require special migration tools, describe them here.
- When will we remove the existing behavior?