Microsoft Information Protection (MIP) SDK for C++: Reference 1.15
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 PrioritizeHtmlInMsgs = 34, /**< Prioritize HTML body over RTF body in msg files. */
79 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. */
80};
81
82/**
83 * @brief Gets whether or not a feature is enabled by default
84 *
85 * @return Default state of flighting features
86 */
87inline const std::map<FlightingFeature, bool>& GetDefaultFeatureSettings() {
88 static std::map<FlightingFeature, bool> kDefaultFeatureSettings = {
89 // Feature name Default value
124 };
125 return kDefaultFeatureSettings;
126}
127
128MIP_NAMESPACE_END
129#endif // API_MIP_FLIGHTING_FEATURE_H_
130
FlightingFeature
Defines new features by name.
@ EnableExtendedErrors
Whether or not parsing extendedErrorInfo is enabled.
@ OptimizePdfMemory
Enable Optimize PDF Memory Creator in protect and unprotect PDF files.
@ SingleDomainName
Enable single company name for dns lookup.
@ MockDynamicWatermarkingResponseEnabled
Enable support to return a fixed dynamic watermarking format string.
@ AuthInfoCache
Cache OAuth2 challenges per domain/tenant to reduce unnecessary 401 responses.
@ CrossTenantUserCert
Whether or not to pass up query parameters to /clientlicensorcertificates to support cross tenant sce...
@ PreLicenseValidityCheck
Check prelicense for validity time.
@ PolicyAuth
Enable automatic HTTP authentication for requests sent to Policy service.
@ VariablePolicyTtl
Enable variable policy time to live, disabling reverts to infinite policy.
@ PrioritizeHtmlInMsgs
Prioritize HTML body over RTF body in msg files.
@ RemoveDeletedLabelMd
Enable removing delete label's meta data.
@ EventDateTimeTokenUseUtc
Whether to replace ${Event.DateTime} with a UTC timestamp.
@ EnableActionIdForV0Metadata
Write ActionID metadata for content using version 0.
@ RemoveParentMetadataWhenChildLabelRemoved
When removing a child label, clear any parent metadata of the removed label that may be present.
@ PreLicensing
Enable pre license api check.
@ DoubleKey
Enable double key protection feature to use a customer key to encrypt with.
@ LinuxEncryptedCache
Enable encrypted caching for Linux platforms (Please read the prerequisites for this feature)
@ EnforceMinimumTls13
Enforce TLS 1.3 or above for non-ADRMS HTTPS connections.
@ UseMsipcCompatability
Modify certain outputs to match MSIPC formatting.
@ VariableTextMarking
Enable variable text marking.
@ IgnoreEmptyMsipLabelNameParseError
Ignore empty label name parse error, enabled by default.
@ ServiceDiscovery
Rely on separate HTTP call to determine RMS service endpoints.
@ EncryptedAppDataTemplateOnline
Enable online publishing for encrypted app data for templates.
@ UseCbcForOfficeFileEncryption
Office file format uses CBC protection.
@ EnableFipsValidatedCryptography
Enable the use of the FIPS-validated Windows CNG APIs instead of OpenSSL on Windows platforms.
@ MatchCloudType
Reserved.
@ EnforceMinimumTls12
Enforce TLS 1.2 or above for non-ADRMS HTTPS connections.
@ UrlRedirectCache
Cache URL redirects to reduce number of HTTP operations.
@ DynamicWatermarkingEnabled
Enable support for dynamic watermarking.
@ KeyStoreBasedOnStoragePath
Whether or not to use storage path in keystore.
@ EnableAuditAndTelemetryForSovereignClouds
Enable telemetry and audit events for sovereign clouds.
@ EncryptedDatabaseIntegrityChecking
Enable database integrity checking.
@ UseRapidJson
Use RapidJson for json parsing.
@ PowerBiCustomSettings
Whether or not to add power bi settings to custom settings.
const std::map< FlightingFeature, bool > & GetDefaultFeatureSettings()
Gets whether or not a feature is enabled by default.
MIP namespace macros.