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 CachePrelicenseEUL = 37, /**< If true, will generate and cache a EUL based on a provided prelicense. Will cache nothing if false. */
84 DynamicProtectionTypeForConsumption = 38, /**< Enable dynamic (SharePoint) protection type for consumption. */
85 CloudAutoDiscovery = 39, /**< Enable cloud auto discovery. */
86 FixOutlookMultiMsgAttachmentParsing = 40, /**< Fix Outlook msg parsing when a message has multiple msg attachments. */
87 ExponentialBackoffRetries = 41, /**< Enable exponential backoff retries for HTTP requests. */
88 GetBinaryHtmlBodyInMsgs = 42, /**< If true, when retrieving the HTML body when processing MSGs, MIP will attempt to retrieve the binary HTML body if the string HTML body does not exist. */
89 SetMsgPropertiesAsEmbeddedMessageForRpmsg = 43, /**< If true, the MSG property headers will be set to type EmbeddedMessage when the MSG type is RPMSG. Without this set to true, MsgInspector will not find the proper codepage. */
90 GetCorrectCodePageInMsgInspectorUnicode = 44, /**< If true, the MSG inspector will return the code page of the MSG if it's a unicode MSG. If false, unicode MSGs will always have the unicode code page returned. */
91 EnableMsgToHandleEmlAttachments = 45, /**< If true, while decrypting MSGs any EML attachments will be decrypted as well. If true, EML attachments will also be cheked when determining if an MSG contains protected objects. */
92 LimitMaxDepthWhenProcessingNestedAttachments= 46, /**< If true, if the max depth passed into MsgFileFormat is 0, removing protection will fail. If this is not set, an EML with attached MSGs may exceed the max depth if remove protection is called on it. */
93 CacheDnsResults = 47, /**< If true, will cache the DNS lookup result. The DNS cache is bypassed if false. */
94 FileSDKOfflinePublishing = 48, /**< Enable offline publishing for file SDK. */
95 ProtectionAPITelemetryPropertyAdd = 49, /**< Enable Protection SDK APIs to take in additional telemetry properties */
96 ProtectionSDKDataBoundarySetInMipContext = 50, /**< ProtectionSDK hornors the data boundary set in MipContext */
97 UseSubstrateLabelPolicyEndpoints = 51, /**< Reserved: This flag was introduced for a 1.15 feature that has not been brought forward yet. */
98 MultipleLabelResolution = 52, /**< Enable logic to handle multiple labels from same tenant on single document. */
99 TargetCrossCloudProtectionLicenseEndpoint = 53, /**< Enables use of the distribution point url from a license (if available) when doing service discovery. */
100};
101
102/**
103 * @brief Gets whether or not a feature is enabled by default
104 *
105 * @return Default state of flighting features
106 */
107inline const std::map<FlightingFeature, bool>& GetDefaultFeatureSettings() {
108 static std::map<FlightingFeature, bool> kDefaultFeatureSettings = {
109 // Feature name Default value
149 { FlightingFeature::CloudAutoDiscovery, false }, // change to true when ready
164 };
165 return kDefaultFeatureSettings;
166}
167
168MIP_NAMESPACE_END
169#endif // API_MIP_FLIGHTING_FEATURE_H_
170
FlightingFeature
Defines new features by name.
@ EnableExtendedErrors
@ OptimizePdfMemory
@ SingleDomainName
@ ProtectionAPITelemetryPropertyAdd
@ ExponentialBackoffRetries
@ MockDynamicWatermarkingResponseEnabled
@ AuthInfoCache
@ CrossTenantUserCert
@ SetMsgPropertiesAsEmbeddedMessageForRpmsg
@ PreLicenseValidityCheck
@ PolicyAuth
@ EnableMP4Files
@ VariablePolicyTtl
@ PrioritizeHtmlInMsgs
@ RemoveDeletedLabelMd
@ TargetCrossCloudProtectionLicenseEndpoint
@ EventDateTimeTokenUseUtc
@ LoadCrossTenantUserCertOffline
@ EnableActionIdForV0Metadata
@ RemoveParentMetadataWhenChildLabelRemoved
@ PreLicensing
@ DoubleKey
@ LinuxEncryptedCache
@ EnforceMinimumTls13
@ UseMsipcCompatability
@ EnableEngineSettingsTelemetry
@ VariableTextMarking
@ GetBinaryHtmlBodyInMsgs
@ UseSubstrateLabelPolicyEndpoints
@ IgnoreEmptyMsipLabelNameParseError
@ ServiceDiscovery
@ EncryptedAppDataTemplateOnline
@ FixOutlookMultiMsgAttachmentParsing
@ UseCbcForOfficeFileEncryption
@ CloudAutoDiscovery
@ EnableMsgToHandleEmlAttachments
@ DynamicProtectionTypeForConsumption
@ EnableFipsValidatedCryptography
@ MatchCloudType
@ EnforceMinimumTls12
@ UrlRedirectCache
@ GetCorrectCodePageInMsgInspectorUnicode
@ DynamicWatermarkingEnabled
@ MultipleLabelResolution
@ ProtectionSDKDataBoundarySetInMipContext
@ KeyStoreBasedOnStoragePath
@ CachePrelicenseEUL
@ FileSDKOfflinePublishing
@ EnableAuditAndTelemetryForSovereignClouds
@ EncryptedDatabaseIntegrityChecking
@ CacheDnsResults
@ LimitMaxDepthWhenProcessingNestedAttachments
@ UseRapidJson
@ PowerBiCustomSettings
const std::map< FlightingFeature, bool > & GetDefaultFeatureSettings()
Gets whether or not a feature is enabled by default.
MIP namespace macros.