﻿========================================================================

SharePoint Backup Application

Exceed One Backup
             for SharePoint and OneDrive

Software production and sales: Exceed One Co., Ltd.

========================================================================

This document explains about “Exceed One backup” ("EOB"),
how to use EOB,　and others important information.

You learn more about the latest features this product, come to our 
website, Exceed One Co., Ltd. ("Exceed One"). 


------------------------------------------------------------------------
A table of contents
------------------------------------------------------------------------

1. Applications Overview
2. System Requirements
3. Product Edition
4. Software License Terms and Conditions
5. How to use EOB
6. How to contact us /  How to buy
7. Others
8. Product Update


------------------------------------------------------------------------
1. Applications Overview
------------------------------------------------------------------------

EOB make a backup of data for "SharePoint Online" and "One Drive for 
Business" to local storage by file level.

[Functional overview]
 -Save documents, files and database references in the website
 -Save the website elements of same layout to folder that EOB make in the location
 -Export selection from database contents to XML format file, then Save them

------------------------------------------------------------------------
2. System Requirements
------------------------------------------------------------------------

SharePoint
 -SharePoint Online (Office365)

Operating System
 -Microsoft Windows 10 (21H2 or later), 11
 -Microsoft Windows Server 2022 or later (Windows Server 2016 / 2019 are not supported because .NET Framework 4.8.1 is required)

.Net Framework
 -.NET Framework 4.8.1
　

------------------------------------------------------------------------
3. Product Edition
------------------------------------------------------------------------

EOB has free editions that include of each feature and license level.

[Free Edition]
 -Free software
 -This edition has limitations of function.

[Professional Edition]
 -Paid version.
 -All of the function is available without website as bellow,
   Private website 
   Group website

[Professional Plus Edition]
 -Paid version.
 -All of the function in EOB is available.


------------------------------------------------------------------------
4. Software License Terms and Conditions
------------------------------------------------------------------------

You must accept “Software License Terms and Conditionst” to use this
product "EOB".
If you do not agree with such terms and conditions do not download and 
install the EOB.
However, free edition is not applicable it.
Free edition applies an individual license agreement.

[Individual license agreement for Free edition]
We consent that you use EOB's “free edition” for free.


------------------------------------------------------------------------
5. How to use
------------------------------------------------------------------------

[Installation]
 -You should create a folder in your PC anywhere, then you should copy 
  unzip folder for EOB in it.
 -You should do setting that EOB access to SharePoint for back up.
 -You should registered for application and setting for EOB access 
  to Azure AD.

[Uninstallation]
 -You have to delete EOB access rights in SharePoint, 
  and deactivation is disconnecting SharePoint from a valid user license.
 -You have to delete application for EOB from Azure AD.
 -If you registered in EOB license, you have to deactivation disconnects
  an application from a valid user license.
  You can deactivate your license on application menu "Unreg".
 -You have to delete all files and the folder that you created 
  when you installed EOB.

[Certificate password]
 - The certificate created with "Create certificate" (Certs\EOB.pfx) is protected by a
   password for this PC only. The password is created automatically, encrypted with
   Windows (DPAPI) and saved in Certs\EOB.pfx.key. It cannot be used on another PC; on
   another PC, create a certificate again and register it in Entra ID.
 - Certificates created by previous versions are protected by a password shared by all
   copies of the product. Protect them with a password for this PC only with the command
   below (the key pair stays the same, so the Entra ID registration does not change).
     EOBCmd.exe /c:EOBBatch.xml /protectcert

[Restore (Professional or higher)]
 You can restore backed-up files and lists to SharePoint from the command line,
 to the original location, to another library or folder, or to a new library.

 EOBCmd.exe /c:config /restore:folder /to:url
     [/ifexists:skip|overwrite|rename] [/dryrun | /yes] [/create] [/l:logfile]

   /restore:  The folder of the library, folder or list inside the backup folder
   /to:       The URL of the target SharePoint library, folder or list
   /ifexists: When a file with the same name exists
              skip (default) / overwrite / rename (saved as "name (1).ext")
   /dryrun:   Check only. Shows what would be restored; SharePoint is not changed
   /yes:      Run without asking (for Task Scheduler and scripts)
   /create:   Create the target library, folder or list if it does not exist

 - Without /yes, the plan is shown first (folders to create, numbers of new,
   overwritten, renamed and skipped files, and the files to be overwritten), and
   "Run the restore? (Y/N)" is asked. Anything other than Y, or no input, cancels
   the restore (exit code -41).
 - Created and Modified dates are restored. When restoring to the same site
   collection, Created By and Modified By are restored too (if the user exists).
 - When the target is a list, items and attachments are re-created from the saved
   XML. If the target list does not exist, /create creates the list and its columns
   (custom lists only; the column definitions _def_<list name>.xml are saved by
   backups from this version on).
 - If versioning is on, the previous content of overwritten files stays in SharePoint.

 Example (check only first, then confirm and run)
   EOBCmd.exe /c:EOBBatch.xml "/restore:c:\Backup\contoso_sharepoint_com\sites\Sales\Shared Documents"
              /to:https://contoso.sharepoint.com/sites/Sales/Restore /dryrun
   EOBCmd.exe /c:EOBBatch.xml "/restore:c:\Backup\contoso_sharepoint_com\sites\Sales\Shared Documents"
              /to:https://contoso.sharepoint.com/sites/Sales/Restore /create
   (The examples are wrapped for readability. Enter each on one line.)

[Support Log]
 When contacting support, you can create a zip file containing recent logs
 and environment information. Sensitive data such as tenant names, site URLs,
 usernames, and IDs are automatically replaced with pseudonyms.
 The mapping table (EOBLogMap.txt) stays on your PC only; it is not in the zip.

 Command
   EOBCmd.exe /c:config /supportlog
   EOBCmd.exe /c:config /supportlog:output.zip

 In the GUI, use Help > "Create Support Log...".
 Signing in before creating the log improves masking accuracy.


If you want more information, Please check the EOB manual.


------------------------------------------------------------------------
6. How to contact us /  How to buy
------------------------------------------------------------------------

If you want to contact us about EOB and license inquiry,
see our Website page, and the product page for the detail.

Software production and sales: Exceed One Co., Ltd.

[Our Website page]
http://www.exceedone.com/

[URL for the product]
http://www.exceedone.com/eob_en/


------------------------------------------------------------------------
7. Other
------------------------------------------------------------------------

The company names and product names used on this document are trademarks
or registered trademarks of their respective companies. 


------------------------------------------------------------------------
8. History
------------------------------------------------------------------------
Feb/04/2015 ver 1.0.0
 -Release
 
Mar/25/2015 ver 1.0.0.1
 -Display failure bug fix

May/07/2015 ver 1.0.0.2
 -Add function that delete empty word from input value.

Jun/12/2015 ver 1.5.0
 -Add batch execution function
 -Add automatic acquisition mode

Aug/26/2015 ver 1.6.0
 -Add Professional plus edition
 -Add plan without SharePoint admin center

Mar/01/2016 ver 1.7.0
 -Support for document library of group

JUN/24/2016 ver 1.7.1
 -The download process has been optimized.
 -Support for path names longer than 260 characters.
 -Support for files larger than 2GB.

JAN/30/2017 ver 1.7.2
 -Supports filenames containing single quotes.

NOV/28/2018 ver 1.7.3
 -Supports filenames containing sharp and percent. 

APR/22/2020 ver 1.7.4
 -Support for modern certification.(SharePointOnlineCredentials --> AccessToken)

Jul/02/2021 ver 1.7.5
 - Supports TLS 1.1 / 1.2  
   Changed to NET Framework 4.6.0 (Supports TLS 1.1 / TLS 1.2)

Oct/31/2025 ver 2.0.1
 - Authentication changed to certificate-based authentication.
   Previous: Microsoft Graph (Authorization Code + PKCE flow), SharePoint (Azure Access Control Services (ACS))
   Now: Client Credentials flow using certificate authentication (certificate-based).
   Note: Client Secret cannot be used with SharePoint CSOM, therefore authentication was switched to certificate.
 - Upgraded to .NET Framework 4.8.1 (upgraded from .NET Framework 4.6.0).
   Note: .NET Framework 4.8.1 relies on the OS SChannel for TLS; TLS 1.3 availability depends on the Windows version and updates (e.g. Windows 11 / Windows Server 2022 or later with relevant updates).

Jul/17/2026 ver 2.0.2
  - Improved processing speed and fixed abnormal termination caused by timeouts.
    - Optimized how the access token is acquired.
      Previously an access token was acquired for every single file, which could cause
      slow processing and abnormal termination due to timeouts ("A task was canceled")
      on sites containing a large number of files. The token is now cached and reused
      per site, which resolves this issue.
    - Explicitly set a timeout (10 minutes each) for the HTTP communication used when
      downloading files. This prevents large file downloads from being interrupted by
      the default timeout (100 seconds).
    - Added automatic retry with wait when SharePoint Online throttling (HTTP 429/503)
      or a temporary communication error occurs. When the server specifies a wait time
      (Retry-After), the application follows that instruction. Files that do not recover
      after retrying are skipped individually, their file names are recorded in the log,
      and processing continues (a single file failure no longer stops the whole process).
  - Enhanced logging.
    - When the process terminates abnormally due to an error, detailed information for
      troubleshooting (exception type, message, HTTP status, inner exception, and stack
      trace) is now written to the execution log (EOBLogs\EOBLog_yyyymmdd_hhmmss.txt).
      This detailed error log is always output.
    - Added a feature to periodically output performance information such as the number
      of processed items and elapsed time. (See "Performance Log" below.)
 
    [Performance Log (optional)]
    - Disabled by default, because it increases the amount of log output.
    - When enabled, the following information is written to the log
      (EOBLogs\EOBLog_yyyymmdd_hhmmss.txt):
        - Processing progress at regular intervals (about every 60 seconds)
          e.g. [PERF] Progress: Items=1,234, Files=567, Errors=0, Elapsed=00:12:34
               Items   ... Number of processed database (list) items
               Files   ... Number of downloaded files
               Errors  ... Number of errors
               Elapsed ... Elapsed time
        - Download size and elapsed time for each file
          e.g. [PERF] Download: 1,048,576 bytes, 320 ms : (destination file path)
    - How to enable:
      Add the following tag to the configuration file (EOBConfig.xml / the XML for batch):
          <PerfLog>true</PerfLog>
      To disable it, specify false or remove the tag (disabled by default).
      * You can also toggle it with the "Output performance log (EOBLog.txt)" checkbox
        on the main screen. The value is saved to EOBConfig.xml when the backup settings
        are saved.
      * You can also choose the parallel degree on the main screen (1 to 4). The default
        value is 2.

    [Log output location]
    - Log files are written to the EOBLogs folder in the same folder as EOB.exe.
      - Execution log / progress / error details ... EOBLogs\EOBLog_yyyymmdd_hhmmss.txt
      - Debug details (only when debug mode is enabled) ... EOBLogs\EOBDebug_yyyymmdd_hhmmss.txt
    - Progress information and error messages are also shown on the screen (or the console
      window in batch mode).
    - Detailed information for errors is not shown on the screen and is written only to
      EOBLogs\EOBLog_yyyymmdd_hhmmss.txt.
    - If you enable the "Delete old logs" checkbox on the main screen, log files older than
      30 days in the EOBLogs folder (EOBLog_*.txt / EOBDebug_*.txt) are automatically deleted
      (disabled by default).
      The retention period can be set from 0 to 9999 days. 0 means unlimited (no deletion).

    [Performance verification result (internal test)]
    - Test date: 2026/07/27
    - Test condition: same target scope (Items=3,495 / Files=3,449), Errors=0
    - Measured elapsed time:
      - Parallel degree 1: 00:05:06
      - Parallel degree 2: 00:02:46
      - Parallel degree 4: 00:02:39
    - Comparison:
      - Parallel degree 4 is about 48.0% faster than parallel degree 1.
      - Parallel degree 4 is about 4.2% faster than parallel degree 2.
    * These figures were measured while the defect fixed in ver 2.0.3 (the number of
      concurrent connections was internally limited to 2) was still present. That is why
      the gain from parallel degree 2 to 4 is only 4.2%. See the ver 2.0.3 entry for the
      measurement taken after the fix.

Jul/29/2026 ver 2.0.3
 - Addressed abnormal termination caused by timeouts when retrieving SharePoint list
   information.
   - Extended the wait time for the communication that retrieves list and item information.
   - Added automatic retry when a timeout occurs during list retrieval. It retries up to
     3 times, waiting for a fixed period and re-creating the connection before each retry.
   - Reduced the number of records retrieved per request, preventing responses from
     becoming too heavy.
   - Only the targets that could not be retrieved after retrying are recorded as SKIP, and
     the overall process continues (a single failure no longer stops the whole backup).
 - Fixed a defect that prevented parallel processing from taking effect.
   - The number of concurrent connections to SharePoint was internally limited to 2, so
     setting the parallel degree to 3 or higher barely reduced the processing time. This
     limit has been removed, and the configured parallel degree is now applied to the
     actual communication.
   - In addition, the memory allocation used when downloading files, the way the log file
     is written, and the on-screen history display were revised to reduce the load during
     processing.
     Note: the log content and output location are unchanged.
 - Improved error visibility for timeout and similar failures.
   Error type, message, and context are now shown more clearly in the log
   and in the on-screen history area.
 - Added version display to the main window title and the version dialog title
   to help prevent version mismatch.
 - Added new entries to the performance log.
   - Elapsed time for each SharePoint list retrieval (CSOM) request.
     e.g. [PERF] Query[T10]: 250 ms : GetListFiles LIST ID: xxxxxxxx-xxxx-...
   - The thread number is now appended to the download entries.
     e.g. [PERF] Download[T10]: 1,048,576 bytes, 320 ms : (destination file path)

    [Performance verification result (internal test)]
    - Test date: 2026/07/29
    - Test condition: same target scope (Items=3,495 / Files=3,449), Errors=0
    - Measured elapsed time:
      - Parallel degree 1: 00:06:30
      - Parallel degree 2: 00:03:25
      - Parallel degree 4: 00:02:30
    - Comparison:
      - Parallel degree 4 is about 61.5% faster than parallel degree 1.
      - Parallel degree 4 is about 26.8% faster than parallel degree 2.
    * The parallel degree can be set from 1 to 4; values outside this range are corrected
      automatically. If the setting is omitted, the application runs with 2.
    * A higher parallel degree makes SharePoint throttling (HTTP 429) more likely. When
      throttled, the application waits and retries automatically so processing continues,
      but depending on the environment a value of 2 may be more stable.

    [Planned improvements (ver 2.0.5 or later)]
    - In the measurement above, the communication that retrieves list information from
      SharePoint (136 requests, about 33 seconds in total) accounted for roughly 20% of
      the total processing time. File downloads are idle while these requests run, so we
      are considering prefetching the next set of information to shorten the time further.
    * This describes the current direction only and is not a commitment to a specific
      release or scope.

Jul/31/2026 ver 2.0.4
 - Fixed a defect that prevented list item attachments from being backed up.
   - The download URL for attachments was built with a duplicated separator ("/").
     SharePoint does not normalize the duplication and treats it as a different
     location, so the file was reported as "404 Not Found" and skipped even though
     it existed.
     e.g. .../Attachments/169//(file name)  - it should be .../Attachments/169/(file name)
   - Files in document libraries and list item data (the list records themselves) are
     not affected. The problem occurred only for list attachments.
   * Backups taken with ver 2.0.3 or earlier may not contain list attachments. After
     applying this version, please run the backup again and confirm that attachments
     are saved.
 - Fixed a defect where the error count and the SKIP list were twice the actual number
   in the Free Edition.
   - The capacity counter tried to read the size of files that had not been saved
     because the download failed, and the failure was recorded as a second error. An
     unrelated FileNotFoundException was also written to the log.
   - Files that were not saved are now excluded from the capacity counter, so they no
     longer count toward the Free Edition capacity limit either.
   * This does not occur in the Professional Edition or the Professional Plus Edition.

    [Verification result (internal test)]
    - Test date: 2026/07/31
    - Test data: a custom list with the following 4 items
      - Item 01: 1 attachment (Japanese file name)
      - Item 02: 3 attachments
      - Item 03: no attachment
      - Item 04: 1 attachment (name containing spaces and symbols)
        e.g. file +plus 'apos (paren) ,comma.txt
      * "#" and "%" were excluded because SharePoint does not allow them in list
        attachment file names.
    - Result (same site, same conditions):
                                    ver 2.0.3   ver 2.0.4
        Attachments saved                   0           5
        Errors                             10           0
        SKIP count                         10           0
        Items                             643         643
        Files                             624         624
    - With ver 2.0.3 no attachment was saved, and the log recorded 404 errors for
      "Attachments/(item ID)//(file name)".
    - With ver 2.0.4 all 5 files were saved with no 404 and no errors. No Attachments
      folder is created for an item that has no attachment.
    - Items and Files are identical in both versions, confirming that nothing other than
      attachments is affected.
    - The test was run in both the Free Edition and the Professional Edition, with the
      same result.
      * The "Errors 10" above is the Free Edition value, caused by the double counting
        described above. The Professional Edition reports 5 for the same state.

Nov/04/2026 ver 2.0.6
- Easy Restore: You can now restore backed-up files and lists from the UI back to SharePoint.
	- Open "Restore" > "Restore to SharePoint" from the menu to launch the restore dialog.
	- Choose the source folder, destination URL, and how to handle name conflicts
	  (skip / overwrite / overwrite if newer / rename).
	- Use the "Browse" button to pick sites and libraries from a list (Backup Browser).
	- "Dry Run" lets you preview what will be restored without writing anything.
	- A progress dialog shows item counts and elapsed time; you can cancel mid-way.
	- List items can also be restored (custom lists, preserving Created/Modified dates and authors).
	- If columns are missing on the target list, they are created automatically from the backup (/CREATE option).
	- Benchmark: 5,200 list items in ~2 min 17 sec, 455 files in ~2 min 40 sec (parallelism 4, internal test).
	  * This feature requires the Professional Edition or above. Not available in the Free Edition.
- Faster Backup: Incremental backups are significantly faster.
	- Unchanged lists are skipped entirely (~95% reduction).
	- Changed lists fetch only the changed items (change-token approach).
	- Attachment metadata is fetched together with item data (fewer round-trips).
	- Benchmark (8 lists, 5,690 items, 460 files): first run 38 sec -> no change 2 sec, partial change 4 sec.
- Modern UI: Updated to Segoe UI font, flat buttons, and a lighter color scheme.
	- High-DPI support (125%/150%) — controls no longer blur or overflow.
- Tree Search: Incrementally filter sites and lists by name in the tree view.
- Site Type Filter: Choose which site types to load (General / OneDrive / Group). Excluding unneeded types speeds up loading.
- Site List Cache: The previous site list is remembered to shorten startup wait time.
- Logging improvements:
	- Log levels unified to Standard / Verbose / Diagnostic. "Verbose for next run only" is also available.
	- Consistent line format (datetime, level, thread ID, message) with a summary at the end of each backup.
- Certificate password is now a per-PC random password protected by DPAPI.
	- Existing certificates continue to work. A re-protection notice appears in the log.
- Removed "Connection Settings" from the Settings menu (connect via the "Fetch" button instead).
- Clear guidance messages when a certificate is missing or its password is incorrect.
- Vietnamese UI support (Settings > Language > Tiếng Việt).
- Fixed a bug where the /L: option in batch mode (EOBCmd) had no effect.

Nov/02/2026 ver 2.0.5
- Reduced the number of distributed files (118 to 12).
    - The DLLs (about 70) and the Japanese resources (ja\EOB.resources.dll) that were
      placed next to EOB.exe are now embedded in EOB.exe.
    - Microsoft.Identity.Client.NativeInterop.dll and the runtimes folder (used for
      sign-in) are still included as files.
    - Features, settings files and logs are unchanged. If you overwrite the folder of
      a previous version, old DLLs left there do no harm (a new folder is recommended).
- EOB.exe and EOBCmd.exe are now code-signed by Exceedone Co., Ltd.
- The version of EOBCmd.exe is now 2.0.5, the same as EOB.exe (it was left at 1.7.5).

[EOF]
