Microsoft Information Protection (MIP) SDK for C++: Reference 1.16
Doxygen-generated documentation for MIP SDK written in C++
Loading...
Searching...
No Matches
flighting_feature.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (c) Microsoft Corporation.
4 * All rights reserved.
5 *
6 * This code is licensed under the MIT License.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files(the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12 * copies of the Software, and to permit persons to whom the Software is
13 * furnished to do so, subject to the following conditions :
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 * THE SOFTWARE.
25 *
26 */
27/**
28 * @brief A file containing the FlightingFeature definition
29 *
30 * @file flighting_feature.h
31 */
32
33#ifndef API_MIP_FLIGHTING_FEATURE_H_
34#define API_MIP_FLIGHTING_FEATURE_H_
35
36#include <map>
37
38#include "mip/mip_namespace.h"
39
40MIP_NAMESPACE_BEGIN
41
42/**
43* @brief Defines new features by name
44*/
45enum FlightingFeature : unsigned int {
46 ServiceDiscovery = 0, /**< Rely on separate HTTP call to determine RMS service endpoints */
47 AuthInfoCache = 1, /**< Cache OAuth2 challenges per domain/tenant to reduce unnecessary 401 responses. Disable for apps/services that manage their own HTTP auth (like SPO, Edge) */
48 LinuxEncryptedCache = 2, /**< Enable encrypted caching for Linux platforms (Please read the prerequisites for this feature) */
49 SingleDomainName = 3, /**< Enable single company name for dns lookup. e.g. https://corprights */
50 PolicyAuth = 4, /**< Enable automatic HTTP authentication for requests sent to Policy service. Disable for apps/services that manage their own HTTP auth (like SPO, Edge) */
51 UrlRedirectCache = 5, /**< Cache URL redirects to reduce number of HTTP operations */
52 PreLicensing = 6, /**< Enable pre license api check */
53 DoubleKey = 7, /**< Enable double key protection feature to use a customer key to encrypt with */
54 VariablePolicyTtl = 8, /**< Enable variable policy time to live, disabling reverts to infinite policy*/
55 VariableTextMarking = 9, /**< Enable variable text marking*/
56 OptimizePdfMemory = 10, /**< Enable Optimize PDF Memory Creator in protect and unprotect PDF files */
57 RemoveDeletedLabelMd = 11, /**< Enable removing delete label's meta data */
58 EnforceMinimumTls12 = 12, /**< Enforce TLS 1.2 or above for non-ADRMS HTTPS connections */
59 MatchCloudType = 13, /**< Reserved */
60 EnableAuditAndTelemetryForSovereignClouds = 14, /**< Enable telemetry and audit events for sovereign clouds */
61 EnableActionIdForV0Metadata = 15, /**< Write ActionID metadata for content using version 0 */
62 PowerBiCustomSettings = 16, /**< Whether or not to add power bi settings to custom settings */
63 KeyStoreBasedOnStoragePath = 17, /**< Whether or not to use storage path in keystore */
64 EventDateTimeTokenUseUtc = 18, /**< Whether to replace ${Event.DateTime} with a UTC timestamp */
65 CrossTenantUserCert = 19, /**< Whether or not to pass up query parameters to /clientlicensorcertificates to support cross tenant scenarios */
66 EncryptedDatabaseIntegrityChecking = 20, /**< Enable database integrity checking */
67 EnableFipsValidatedCryptography = 21, /**< Enable the use of the FIPS-validated Windows CNG APIs instead of OpenSSL on Windows platforms */
68 RemoveParentMetadataWhenChildLabelRemoved = 22, /**< When removing a child label, clear any parent metadata of the removed label that may be present. */
69 UseCbcForOfficeFileEncryption = 23, /**< Office file format uses CBC protection. */
70 EncryptedAppDataTemplateOnline = 24, /**< Enable online publishing for encrypted app data for templates. */
71 UseMsipcCompatability = 25, /**< Modify certain outputs to match MSIPC formatting */
72 PreLicenseValidityCheck = 26, /**< Check prelicense for validity time. */
73 DynamicWatermarkingEnabled = 27, /**< Enable support for dynamic watermarking. */
74 MockDynamicWatermarkingResponseEnabled = 28, /**< Enable support to return a fixed dynamic watermarking format string. */
75 UseRapidJson = 29, /**< Use RapidJson for json parsing. */
76 EnforceMinimumTls13 = 30, /**< Enforce TLS 1.3 or above for non-ADRMS HTTPS connections. Do not enable this feature until all internal services support the TLS 1.3 security protocol, as enabling it prematurely may cause application malfunctions. */
77 IgnoreEmptyMsipLabelNameParseError = 31, /**< Ignore empty label name parse error, enabled by default. */
78 EnableEngineSettingsTelemetry = 32, /**< Enable support to Add telemetry status for engine settings. */
79 EnableMP4Files = 33, /**< Enable support for MP4 files. */
80 PrioritizeHtmlInMsgs = 34, /**< Prioritize HTML body over RTF body in msg files. */
81 EnableExtendedErrors = 35, /**< Whether or not parsing extendedErrorInfo is enabled. C++ Default to on, C default to false due to potential memory leaking in error handle of mip_cc_error struct. */
82 LoadCrossTenantUserCertOffline = 36, /**< Whether or not to load cross tenant user cert when doing offline republishing. */
83};
84
85/**
86 * @brief Gets whether or not a feature is enabled by default
87 *
88 * @return Default state of flighting features
89 */
90inline const std::map<FlightingFeature, bool>& GetDefaultFeatureSettings() {
91 static std::map<FlightingFeature, bool> kDefaultFeatureSettings = {
92 // Feature name Default value
130 };
131 return kDefaultFeatureSettings;
132}
133
134MIP_NAMESPACE_END
135#endif // API_MIP_FLIGHTING_FEATURE_H_
136
FlightingFeature
Defines new features by name.
@ EnableExtendedErrors
@ OptimizePdfMemory
@ SingleDomainName
@ MockDynamicWatermarkingResponseEnabled
@ AuthInfoCache
@ CrossTenantUserCert
@ PreLicenseValidityCheck
@ PolicyAuth
@ EnableMP4Files
@ VariablePolicyTtl
@ PrioritizeHtmlInMsgs
@ RemoveDeletedLabelMd
@ EventDateTimeTokenUseUtc
@ LoadCrossTenantUserCertOffline
@ EnableActionIdForV0Metadata
@ RemoveParentMetadataWhenChildLabelRemoved
@ PreLicensing
@ DoubleKey
@ LinuxEncryptedCache
@ EnforceMinimumTls13
@ UseMsipcCompatability
@ EnableEngineSettingsTelemetry
@ VariableTextMarking
@ IgnoreEmptyMsipLabelNameParseError
@ ServiceDiscovery
@ EncryptedAppDataTemplateOnline
@ UseCbcForOfficeFileEncryption
@ EnableFipsValidatedCryptography
@ MatchCloudType
@ EnforceMinimumTls12
@ UrlRedirectCache
@ DynamicWatermarkingEnabled
@ KeyStoreBasedOnStoragePath
@ EnableAuditAndTelemetryForSovereignClouds
@ EncryptedDatabaseIntegrityChecking
@ UseRapidJson
@ PowerBiCustomSettings
const std::map< FlightingFeature, bool > & GetDefaultFeatureSettings()
Gets whether or not a feature is enabled by default.
MIP namespace macros.