Skip to content

Commit e15dd4f

Browse files
authored
Merge 2.0rc1 sources to master for widespread release.
This will get the docs staged out to the [gihub.io](https://adobe-apiplatform.github.io/user-sync.py/) site.
2 parents b5431ba + bbbe963 commit e15dd4f

37 files changed

+6759
-1883
lines changed

README.md

Lines changed: 16 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -61,76 +61,22 @@ To set up PyCharm for debugging,
6161

6262
# Basic Usage
6363

64-
```
65-
Adobe Enterprise Dashboard User Sync
66-
67-
optional arguments:
68-
-h, --help show this help message and exit
69-
-v, --version show program's version number and exit
70-
-t, --test-mode run API action calls in test mode (does not execute
71-
changes). Logs what would have been executed.
72-
-c, --config-filename filename
73-
main config filename. (default: "user-sync-
74-
config.yml")
75-
--users all|file|mapped|group [arg1 ...]
76-
specify the users to be considered for sync. Legal
77-
values are 'all' (the default), 'group name or names'
78-
(one or more specified groups), 'mapped' (all groups
79-
listed in configuration file), 'file f' (a specified
80-
input file).
81-
--user-filter pattern
82-
limit the selected set of users that may be examined
83-
for syncing, with the pattern being a regular
84-
expression.
85-
--source-filter connector:file
86-
send the file to the specified connector (for example,
87-
--source-filter ldap:foo.yml). This parameter is used
88-
to limit the scope of the LDAP query.
89-
--update-user-info if user information differs between the customer side
90-
and the Adobe side, the Adobe side is updated to
91-
match.
92-
--process-groups if the membership in mapped groups differs between the
93-
customer side and the Adobe side, the group membership
94-
is updated on the Adobe side so that the memberships
95-
in mapped groups matches the customer side.
96-
--remove-nonexistent-users
97-
Causes the user sync tool to remove users that exist on
98-
the Adobe side if they are not in the customer side
99-
directory.
100-
--generate-remove-list output_path
101-
processing similar to --remove-nonexistent-users
102-
except that rather than performing removals, a file is
103-
generated (with the given pathname) listing users who
104-
would be removed. This file can then be given in the
105-
--remove-list argument in a subsequent run.
106-
--remove-list input_path
107-
specifies the file containing the list of users to be
108-
removed. Users on this list are removed from the
109-
organization on the Adobe side.
110-
--delete-nonexistent-users
111-
Causes the user sync tool to delete user accounts on
112-
the Adobe side if they are not in the customer side
113-
directory. Adobe ID user accounts are removed from the
114-
organization, but not deleted.
115-
--generate-delete-list output_path
116-
processing similar to --delete-nonexistent-users
117-
except that rather than performing removals, a file is
118-
generated (with the given pathname) listing users who
119-
would be removed. This file can then be given in the
120-
--delete-list argument in a subsequent run.
121-
--delete-list input_path
122-
specifies the file containing the list of users to be
123-
deleted. Enterprise and federated users on this list
124-
are deleted on the Adobe side, and Adobe ID users are
125-
removed from the organization but not deleted.
126-
```
64+
##User Sync command line
65+
66+
67+
| Parameters and argument specifications | Description |
68+
|------------------------------|------------------|
69+
| `-h`<br />`--help` | Show this help message and exit. |
70+
| `-v`<br />`--version` | Show program's version number and exit. |
71+
| `-t`<br />`--test-mode` | Run API action calls in test mode (does not execute changes). Logs what would have been executed. |
72+
| `-c` _filename_<br />`--config-filename` _filename_ | The complete path to the main configuration file, absolute or relative to the working folder. Default filename is "user-sync-config.yml" |
73+
| `--users` `all`<br />`--users` `file` _input_path_<br />`--users` `group` _grp1,grp2_<br />`--users` `mapped` | Specify the users to be selected for sync. The default is `all` meaning all users found in the directory. Specifying `file` means to take input user specifications from the CSV file named by the argument. Specifying `group` interprets the argument as a comma-separated list of groups in the enterprise directory, and only users in those groups are selected. Specifying `mapped` is the same as specifying `group` with all groups listed in the group mapping in the configuration file. This is a very common case where just the users in mapped groups are to be synced.|
74+
| `--user-filter` _regex\_pattern_ | Limit the set of users that are examined for syncing to those matching a pattern specified with a regular expression. See the [Python regular expression documentation](https://docs.python.org/2/library/re.html) for information on constructing regular expressions in Python. The user name must completely match the regular expression.|
75+
| `--update-user-info` | When supplied, synchronizes user information. If the information differs between the enterprise directory side and the Adobe side, the Adobe side is updated to match. This includes the firstname and lastname fields. |
76+
| `--process-groups` | When supplied, synchronizes group membership information. If the membership in mapped groups differs between the enterprise directory side and the Adobe side, the group membership is updated on the Adobe side to match. This includes removal of group membership for Adobe users not listed in the directory side (unless the `--adobe-only-user-action exclude` option is also selected).|
77+
| `--adobe-only-user-action preserve`<br />`--adobe-only-user-action remove-adobe-groups`<br />`--adobe-only-user-action remove`<br />`--adobe-only-user-action delete`<br /><br/>`--adobe-only-user-action write-file`&nbsp;filename<br/><br/>`--adobe-only-user-action exclude` | When supplied, if user accounts are found on the Adobe side that are not in the directory, take the indicated action. <br/><br/>`preserve`: no action concerning account deletion is taken. This is the default. There may still be group membership changes if the `--process-groups` option was specified.<br/><br/>`remove-adobe-groups`: The account is removed from user groups and product configurations, freeing any licenses it held, but is left as an active account in the organization.<br><br/>`remove`: In addition to remove-adobe-groups, the account is also removed from the organization, but is left as an existing account.<br/><br/>`delete`: In addition to the action for remove, the account is deleted if owned by the organization.<br/><br/>`write-file`: the list of user account present on the Adobe side but not in the directory is written to the file indicated. No other account action is taken. You can then pass this file to the `--adobe-only-user-list` argument in a subsequent run.<br/><br/>`exclude`: No update of any kind is applied to users found only on the Adobe side. This is used when doing updates of specific users via a file (--users file f) where only users needing explicit updates are listed in the file and all other users should be left alone.<br/><br>Only permitted actions will be applied. Accounts of type adobeID are owned by the user so the delete action will do the equivalent of remove. The same is true of Adobe accounts owned by other organizations. |
78+
| `adobe-only-user-list` _filename_ | Specifies a file from which a list of users will be read. This list is used as the definitive list of "Adobe only" user accounts to be acted upon. One of the `--adobe-only-user-action` directives must also be specified and its action will be applied to user accounts in the list. The `--users` option is disallowed if this option is present: only account removal actions can be processed. |
12779

12880
# Configuration
12981

130-
See `examples/example.user-sync-config.yml` for the main configuration template. The main configuration file user-sync-config.yml must exist in the configuration path.
131-
132-
See `examples/example.dashboard-config.yml` for the dashboard configuration template. The tool would try and find dashboard-owning-config.yml in the configuration path.
133-
134-
See `examples/example.connector-ldap.yml` for the ldap configuration template. The main configuration file can be configured to reference this file.
135-
136-
82+
See the `examples` directory for sample configuration files of all types. These sample files include all of the possible options with descriptions of them.

RELEASE_NOTES.md

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,42 @@
11
# Release Notes for User Sync Tool Version 1.2
22

3-
These notes apply to 1.2rc1 of 2017-03-20.z
3+
These notes apply to 2.0rc1 of 2017-04-03.
4+
5+
## New Arguments & Configuration Syntax
6+
7+
There has been an extensive overhaul of both the configuration file
8+
syntax and the command-line argument syntax. See
9+
[Issue 95](https://github.com/adobe-apiplatform/user-sync.py/issues/95)
10+
and the [docs](https://adobe-apiplatform.github.io/user-sync.py/)
11+
for details.
412

513
## New Features
614

715
1. You can now exclude dashboard users from being updated or
8-
deleted by User Sync. See the
9-
[docs](https://adobe-apiplatform.github.io/user-sync.py/) for
10-
details.
16+
deleted by User Sync. See the
17+
[docs](https://adobe-apiplatform.github.io/user-sync.py/) for
18+
details.
1119
2. There is more robust reporting for errors in configuration
12-
files.
20+
files.
1321
3. The log now reports the User Sync version and gives the
14-
details of how it was invoked.
22+
details of how it was invoked.
1523
4. You can now create and manage users of all identity types,
16-
including Adobe IDs, both when operating from an LDAP
17-
directory and from CSV files.
24+
including Adobe IDs, both when operating from an LDAP
25+
directory and from CSV files.
1826
5. You can now distinguish, when a customer directory user is
19-
disabled or removed, whether to remove the matching Adobe-side
20-
from the organization or also to delete his Adobe user
21-
account.
27+
disabled or removed, whether to remove the matching Adobe-side
28+
user's product configurations and user groups, to remove the
29+
user but leave his cloud storage, or to delete his storage as well.
2230

2331
## Significant Bug Fixes
2432

2533
1. There were many bugs fixed related to managing users of
26-
identity types other than Federated ID.
34+
identity types other than Federated ID.
2735
2. There were many bugs fixes related to managing group
28-
membership of all identity types.
36+
membership of all identity types.
37+
3. There was a complete overhaul of how users who have
38+
adobe group memberships in multiple organizations are
39+
managed.
2940

3041
## Changes in Behavior
3142

@@ -34,5 +45,39 @@ some had applied only to Federated ID and some to Enterprise ID.
3445

3546
## Compatibility with Prior Versions
3647

37-
Other than as noted above, existing configuration files and
38-
should work and have the same behavior.
48+
All existing configuration files, user input files,
49+
and command-line scripts will need to be revamped
50+
to be compatible with the new formats. Here is a quick
51+
cheat sheet of what needs to be done:
52+
53+
* replace `dashboard:` with `adobe_users:`
54+
* replace `directory:` with `directory_users:`
55+
* add a `connectors:` section under `adobe_users:` similar
56+
to the one under `directory_users`
57+
* change `owning` to be `umapi` and put it under `connectors`
58+
* if you access multiple organizations, remove
59+
`secondaries`, and put
60+
all the umapi specifications under `umapi` as a list,
61+
like this:
62+
```yaml
63+
adobe_users:
64+
connectors:
65+
umapi:
66+
- primary-config.yml
67+
- org1: org1-config.yml
68+
- org2: org2-config.yml
69+
```
70+
* change `dashboard_groups` to `adobe_groups`
71+
* under `limits`, change `max_missing_users` to
72+
`max_adobe_only_users` and remove all other
73+
settings
74+
* if you have an extension, do the following:
75+
* remove the per-context: user setting
76+
* move all the settings under it to the top level in
77+
a new file, call it `extension.yaml`
78+
* change `extensions` to `extension`, move it into
79+
the `directory_users` section, and put the relative
80+
path to the new `extension.yaml` file as its value.
81+
82+
83+

docs/art/user-guide/adobe-to-enterprise-connections.ai

Lines changed: 4788 additions & 0 deletions
Large diffs are not rendered by default.

docs/success-guide/command_line_options.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,22 @@ If you are managing licenses with user sync, include the option `--process-group
3434
## Account Deletion
3535

3636

37-
There are several command line options that allow you to specify the action to be taken when an Adobe account with no corresponding directory account is found (a “nonexistent” user).
38-
Note that only the users returned by the directory query and filter are considered as "existing".
37+
There are several command line options that allow you to specify the action to be taken when an Adobe account with no corresponding directory account is found (an “Adobe only” user).
38+
Note that only the users returned by the directory query and filter are considered as "existing" in the enterprise directory. These options range from "completely ignore" to "completely delete" with several possibilities in between.
3939

4040

4141

4242
| Command line option ...........| Use when |
4343
| ------------- |:-------------|
44-
| None | No action desired on nonexistent users |
45-
| `--remove-entitlements-for-nonexistent-users`\* | Adobe account to remain but licenses and group <br>memberships are removed. |
46-
| `--remove-nonexistent-users` | Adobe account to remain but licenses, group memberships, and membership in this org to be removed |
47-
| `--delete-nonexistent-users` | Adobe account to be deleted: remove from PLCs and user groups and <br>from the org; account deleted and all storage and settings freed. |
48-
| `--generate-remove-list f` | No action to be taken on the account. User name written to file for later action. |
49-
| `--generate-delete-list f` | No action to be taken on the account. User name written to file for later action. |
44+
| `--adobe-only-user-action exclude` | No action desired on accounts that exist only in Adobe and have no corresponding directory account. Adobe group memberships are not updated even if `--process-groups` is present. |
45+
| `--adobe-only-user-action preserve` | No removal or deletion of accounts that exist only in Adobe and have no corresponding directory account. Adobe group memberships are updated if `--process-groups` is present. |
46+
| `--adobe-only-user-action remove-adobe-groups` | Adobe account to remain but licenses and group <br>memberships are removed. |
47+
| `--adobe-only-user-action remove` | Adobe account to remain but licenses, group memberships, and listing in the Adobe Admin console are removed |
48+
| `--adobe-only-user-action delete` | Adobe account to be deleted: remove from<br>Adobe product configurations and user groups; account deleted and all storage and settings freed. |
49+
| `--adobe-only-user-action write-file f.csv` | No action to be taken on the account. User name written to file for later action. |
50+
51+
5052

51-
\* These options will be available in a future release.
5253

5354
## Other Options
5455

@@ -61,13 +62,13 @@ Note that only the users returned by the directory query and filter are consider
6162

6263
A few examples:
6364

64-
`user-sync --users all --process-groups --remove-nonexistent-users`
65+
`user-sync --users all --process-groups --adobe-only-user-action remove`
6566

66-
- Process all users based on config settings, update Adobe group membership, and if there are any users listed in the org that are not in the directory, remove them.
67+
- Process all users based on config settings, update Adobe group membership, and if there are any Adobe users that are not in the directory, remove them from the Adobe side, freeing any licenses they may have been allocated. The Adobe account is not deleted so that it can be re-added and/or stored assets recovered.
6768

68-
`user-sync --users file example.users-file.csv --process-groups --remove-nonexistent-users`
69+
`user-sync --users file users-file.csv --process-groups --adobe-only-user-action remove`
6970

70-
- The file “example.users-file.csv” is read as the master user list. No attempt is made to contact a directory service such as AD or LDAP in this case.
71+
- The file “users-file.csv” is read as the master user list. No attempt is made to contact a directory service such as AD or LDAP in this case. Adobe group membership is updated per the information in the file, and any Adobe accounts not listed in the file are removed (see definition of remove, above).
7172

7273
## Define your command line
7374

docs/success-guide/decide_deletion_policy.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,18 @@ layout: default
1010
When accounts are disabled or deleted from the directory you often want the corresponding Adobe account removed, but removing the Adobe account may delete assets, settings, etc. that are later needed. Also, Adobe Id accounts that may be in your organization cannot be deleted because the account belongs to the end user. However, licenses you granted to the Adobe Id user can be recovered when you want to remove that user from your organization.
1111

1212

13-
14-
1513
Choices available for handling Adobe account deletion via User Sync:
1614

1715
- Take no action. Account cleanup must be handled manually.
1816

1917
- Generate list of accounts to be deleted, but no action is taken now. The list can be edited and later used to drive account deletion through User Sync.
2018

21-
- Recover all licenses given by your org to the account, but leave the account active. *
19+
- Recover all licenses given by your org to the account, but leave the account active. (remove-adobe-groups)
2220

23-
- Recover all licenses and remove from your org, but leave account in existence.
21+
- Recover all licenses and remove from your org, but leave account in existence. (remove)
2422

25-
- Recover all licenses and delete the account.
23+
- Recover all licenses and delete the account. (delete)
2624

27-
\* feature coming late March, 2017
2825

2926
Some things to know about account deletion:
3027

61 KB
Loading

0 commit comments

Comments
 (0)