Skip to content

Commit

Permalink
Merge branch 'develop' into translations-fdec3a6c
Browse files Browse the repository at this point in the history
  • Loading branch information
akashreddy-nr committed Feb 19, 2025
2 parents fdec3a6 + 2378417 commit 982dd04
Show file tree
Hide file tree
Showing 243 changed files with 51,281 additions and 468 deletions.
2 changes: 1 addition & 1 deletion gatsby-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ module.exports = {
},
i18n: {
translationsPath: `${__dirname}/src/i18n/translations`,
additionalLocales: LOCALES,
additionalLocales: ['jp', 'kr', 'pt', 'es'],
},
prism: {
languages: [
Expand Down
17 changes: 17 additions & 0 deletions scripts/actions/__tests__/add-files-to-translation-queue.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const MOCK_CONSTANTS = {
kr: 'ko-KR',
es: 'es-LA',
pt: 'pt-BR',
fr: 'fr-FR',
},
};

Expand Down Expand Up @@ -46,12 +47,14 @@ describe('add-files-to-translation-queue tests', () => {
'ko-KR': ['excluded/path'],
'es-LA': ['excluded/path'],
'pt-BR': ['excluded/path'],
'fr-FR': ['excluded/path'],
},
excludeType: {
'ja-JP': ['excludedType'],
'ko-KR': ['excludedType'],
'es-LA': ['excludedType'],
'pt-BR': ['excludedType'],
'fr-FR': ['excludedType'],
},
};
const originalAdd = jest.requireActual('../utils/constants.js');
Expand All @@ -77,6 +80,7 @@ describe('add-files-to-translation-queue tests', () => {
{ filename: '/content/bar.mdx', locale: 'ko-KR', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'es-LA', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'pt-BR', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'fr-FR', project_id: 'MT_ID' },
]);
});

Expand All @@ -91,6 +95,7 @@ describe('add-files-to-translation-queue tests', () => {
{ filename: '/content/bar.mdx', locale: 'ko-KR', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'es-LA', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'pt-BR', project_id: 'MT_ID' },
{ filename: '/content/bar.mdx', locale: 'fr-FR', project_id: 'MT_ID' },
]);
});

Expand Down Expand Up @@ -137,6 +142,11 @@ describe('add-files-to-translation-queue tests', () => {
locale: 'pt-BR',
project_id: 'MT_ID',
},
{
filename: '/content/bar.mdx',
locale: 'fr-FR',
project_id: 'MT_ID',
},
]);
});

Expand All @@ -146,6 +156,7 @@ describe('add-files-to-translation-queue tests', () => {
{ filename: 'included/path/content/foo.mdx', locale: 'ko-KR' },
{ filename: 'included/path/content/bar.mdx', locale: 'es-LA' },
{ filename: 'included/path/content/foo.mdx', locale: 'pt-BR' },
{ filename: 'included/path/content/foo.mdx', locale: 'fr-FR' },
];
setup();
const { excludeFiles } = require('../add-files-to-translation-queue');
Expand All @@ -157,6 +168,7 @@ describe('add-files-to-translation-queue tests', () => {
{ filename: 'included/path/content/foo.mdx', locale: 'ko-KR' },
{ filename: 'included/path/content/bar.mdx', locale: 'es-LA' },
{ filename: 'included/path/content/foo.mdx', locale: 'pt-BR' },
{ filename: 'included/path/content/foo.mdx', locale: 'fr-FR' },
]);
});

Expand Down Expand Up @@ -236,6 +248,11 @@ describe('add-files-to-translation-queue tests', () => {
contentType: 'doc',
locale: 'ja-JP',
},
{
filename: 'excluded/path/content/bar.mdx',
contentType: 'doc',
locale: 'fr-FR',
},
];
setup();

Expand Down
1 change: 1 addition & 0 deletions scripts/actions/utils/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const LOCALE_IDS = {
kr: 'ko-KR',
es: 'es-LA',
pt: 'pt-BR',
fr: 'fr-FR',
};

const LOCALES = Object.keys(LOCALE_IDS);
Expand Down
26 changes: 26 additions & 0 deletions scripts/actions/utils/docs-content-tools/i18n-exclusions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,34 @@ excludePath:
- src/content/docs/apm/agents/net-agent/getting-started/net-agent-eol-policy.mdx
- src/content/docs/new-relic-solutions/build-nr-ui/sdk-component

fr-FR:
- src/announcements
- src/content/eol
- src/content/whats-new
- src/content/docs/release-notes
- src/content/docs/licenses
- src/content/docs/style-guide
- src/content/docs/agile-handbook
- src/data-dictionary
- src/i18n
- src/content/docs/security/security-privacy/data-privacy
- src/content/docs/security/security-privacy/compliance
- scripts/actions/__tests__/kitchen-sink.mdx
- src/install
- src/content/docs/mdx-test-page
- src/content/docs/apm/agents/go-agent/get-started/go-agent-eol-policy.mdx
- src/content/docs/apm/agents/java-agent/getting-started/java-agent-eol-policy.mdx
- src/content/docs/infrastructure/infrastructure-monitoring/get-started/infrastructure-agent-eol-policy.mdx
- src/content/docs/apm/agents/ruby-agent/getting-started/ruby-agent-eol-policy.mdx
- src/content/docs/apm/agents/nodejs-agent/getting-started/nodejs-agent-eol-policy.mdx
- src/content/docs/browser/browser-monitoring/getting-started/browser-agent-eol-policy.mdx
- src/content/docs/apm/agents/php-agent/getting-started/php-agent-eol-policy.mdx
- src/content/docs/apm/agents/net-agent/getting-started/net-agent-eol-policy.mdx
- src/content/docs/new-relic-solutions/build-nr-ui/sdk-component

excludeType:
ja-JP:
ko-KR:
es-LA:
pt-BR:
fr-FR:
35 changes: 22 additions & 13 deletions scripts/i18n_utility/__tests__/actions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,18 +171,18 @@ describe('actions tests', () => {
* Every 4 Booleans represents mocking if the file exists and therefore should be renamed or skipped for those locale paths
*/
[
// doc[0]: jp renamed, kr renamed, es renamed, pt renamed
true, true, true, true,
// doc[1]: jp renamed, kr skipped, es skipped, pt skipped
true, false, false, false,
// doc[2]: jp skipped, kr renamed, es skipped, pt skipped
false, true, false, false,
// doc[3]: jp skipped, kr skipped, es renamed, pt skipped
false, false, true, false,
// doc[4]: jp skipped, kr skipped, es skipped, pt renamed
false, false, false, true,
// doc[5]: jp skipped, kr skipped, es skipped, pt skipped
false, false, false, false,
// doc[0]: jp renamed, kr renamed, es renamed, pt renamed, fr renamed
true, true, true, true, true,
// doc[1]: jp renamed, kr skipped, es skipped, pt skipped, fr skipped
true, false, false, false, false,
// doc[2]: jp skipped, kr renamed, es skipped, pt skipped, fr skipped
false, true, false, false, false,
// doc[3]: jp skipped, kr skipped, es renamed, pt skipped, fr skipped
false, false, true, false, false,
// doc[4]: jp skipped, kr skipped, es skipped, pt renamed, fr skipped
false, false, false, true, false,
// doc[5]: jp skipped, kr skipped, es skipped, pt skipped, fr renamed
false, false, false, false, true,
].forEach(
(returnValue) => {
mockFs.existsSync.mockReturnValueOnce(returnValue);
Expand All @@ -191,7 +191,7 @@ describe('actions tests', () => {

const result = Actions.getRenameChanges(input);

expect(result.length).toBe(8);
expect(result.length).toBe(10);
expect(result).toStrictEqual([
{
from:
Expand All @@ -213,6 +213,11 @@ describe('actions tests', () => {
'src/i18n/content/pt/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx',
to: 'src/i18n/content/pt/docs/choose-your-data-center.mdx',
},
{
from:
'src/i18n/content/fr/docs/accounts/accounts-billing/account-setup/choose-your-data-center.mdx',
to: 'src/i18n/content/fr/docs/choose-your-data-center.mdx',
},
{
from:
'src/i18n/content/jp/docs/apm/agents/c-sdk/get-started/images/c-apm-summary.png',
Expand All @@ -235,6 +240,10 @@ describe('actions tests', () => {
from: 'src/i18n/content/pt/docs/apm/auspicious-petite-moth.mdx',
to: 'src/i18n/content/pt/docs/apm/aesthetic-purple-moon.mdx',
},
{
from: 'src/i18n/content/fr/docs/apm/errors-inbox/errors-inbox-ui.mdx',
to: 'src/i18n/content/fr/docs/apm/errors-inbox-ui.mdx',
},

]);
});
Expand Down
5 changes: 4 additions & 1 deletion src/components/EolPage.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { format, isAfter, isSameDay, parseISO } from 'date-fns';
import { ja, ko, es, ptBR } from 'date-fns/locale';
import { ja, ko, es, ptBR, fr } from 'date-fns/locale';
import { useStaticQuery, graphql } from 'gatsby';
import { compareVersions } from 'compare-versions';
import getAgentName from '../utils/getAgentName.js';
Expand Down Expand Up @@ -65,6 +65,9 @@ const EolPage = ({ agent, locale = 'en' }) => {
if (locale === 'pt') {
return format(date, 'PPP', { locale: ptBR });
}
if (locale === 'fr') {
return format(date, 'PPP', { locale: fr });
}
return format(date, 'PP');
};

Expand Down
46 changes: 46 additions & 0 deletions src/components/FrNav.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React from 'react';
import Navigation from './Navigation';
import { useStaticQuery, graphql } from 'gatsby';

const FrNav = ({ className }) => {
const { nav } = useStaticQuery(frQuery);
return <Navigation nav={nav} className={className} />;
};

const frQuery = graphql`
query {
nav(slug: "/") {
id
title(locale: "fr")
url
filterable
pages {
...MainLayout_navPagesfr
pages {
...MainLayout_navPagesfr
pages {
...MainLayout_navPagesfr
pages {
...MainLayout_navPagesfr
pages {
...MainLayout_navPagesfr
pages {
...MainLayout_navPagesfr
}
}
}
}
}
}
}
}
fragment MainLayout_navPagesfr on NavItem {
title(locale: "fr")
url
icon
label
}
`;

export default FrNav;
2 changes: 2 additions & 0 deletions src/components/InlinePopover/InlinePopover.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import jpJson from '../../data/popovers_jp.json';
import krJson from '../../data/popovers_kr.json';
import esJson from '../../data/popovers_es.json';
import ptJson from '../../data/popovers_pt.json';
import frJson from '../../data/popovers_fr.json';

import { TwoButton } from './layouts';

Expand All @@ -26,6 +27,7 @@ const InlinePopover = ({ type }) => {
if (locale === 'jp') return jpJson;
if (locale === 'es') return esJson;
if (locale === 'pt') return ptJson;
if (locale === 'fr') return frJson;
return enJson;
})();

Expand Down
2 changes: 2 additions & 0 deletions src/components/RootNavigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import JpNav from './JpNav';
import EsNav from './EsNav';
import PtNav from './PtNav';
import EnNav from './EnNav';
import FrNav from './FrNav';
import StyleGuideNav from './StyleGuideNav';

const RootNavigation = ({ locale, className, isStyleGuide }) => {
Expand All @@ -13,6 +14,7 @@ const RootNavigation = ({ locale, className, isStyleGuide }) => {
en: <EnNav className={className} />,
es: <EsNav className={className} />,
pt: <PtNav className={className} />,
fr: <FrNav className={className} />,
};
if (isStyleGuide) {
return <StyleGuideNav className={className} />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ Users and groups are located within an [authentication domain](/docs/accounts/ac

We have two default user groups:

* <DNT>**User**</DNT>: A user in this group can use and configure our observability and monitoring features but **not** perform account-level tasks like managing billing or managing other users. It has access to the [<DNT>**All product admin**</DNT>](#standard-roles) role, which grants control over all observability platform tools, but doesn't have any [administration settings](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings), which grant access to the higher level account and user management capabilities.
* <DNT>**Admin**</DNT>: has the [<DNT>**All product admin**</DNT> role](#standard-roles) and in addition has all available [administration settings](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings). As a result, this group has access to all features, including the higher-level admin features.
* <DNT>**User**</DNT>: A user in this group can use and configure our observability and monitoring features but **not** perform account-level tasks like managing billing or managing other users. It has access to the [<DNT>**All product admin**</DNT>](#standard-roles) role, which grants control over all observability platform tools, and the [administrative setting](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings) <strong>Org Product Admin</strong>. It does not have access to any other administrative settings that grant access to the higher level account and user management capabilities.
* <DNT>**Admin**</DNT>: has the [<DNT>**All product admin**</DNT> role](#standard-roles) and in addition has all available [administrative settings](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings). As a result, this group has access to all features, including the higher-level admin features.

To edit the group a user is in, you can go to either the <DNT>**Access management**</DNT> UI and edit a group, or go to the <DNT>**User management**</DNT> UI and edit the user.

Expand All @@ -97,13 +97,13 @@ Important points about roles:

* Roles are additive: users with multiple roles assigned have the total of all permissions granted by those roles. For example, if you're in a group that gives you the `All product admin` role in an account, and in another group that gives you a `Read only` role for the same account, you have both roles, and are not restricted by the `Read only` role.
* A user's access is based on the access granted to them by their user type and their permissions ([learn more](/docs/accounts/accounts-billing/new-relic-one-user-management/user-type#user-type-and-roles)).
* Roles govern observability platform features, while access to organization- and user-related admin settings are governed by [administration settings](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings).
* Roles govern observability platform features, while access to organization- and user-related admin settings are governed by [administrative settings](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts#admin-settings).

To view roles and their permissions, go to the [<DNT>**Access management**</DNT> UI](/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-ui-and-tasks#where) and click <DNT>**Roles**</DNT>.

### Our standard (default) roles [#standard-roles]

We have several <DNT>**standard roles**</DNT>, which are roles that are available by default and that satisfy some common user management use cases.
We have several account-scoped <DNT>**standard roles**</DNT>, which are roles that are available by default and that satisfy some common user management use cases.

<Callout variant="important">
Note that some of our standard roles have permissions that we don't expose and that aren't available for adding to a custom role. The only standard roles that can be replicated with a custom role are <DNT>**Standard user**</DNT> and <DNT>**Read only**</DNT>; all others have some non-exposed permissions.
Expand Down Expand Up @@ -137,7 +137,7 @@ Here's a table with our standard roles. To better understand these roles, go to
</td>

<td>
This role includes all New Relic platform permissions <DNT>**except**</DNT> the ability to manage organization-level settings, users, and billing. It's an admin role in the sense that it allows the configuration of our platform features (for example, the ability to configure <InlinePopover type="apm"/> settings), but it doesn't provide organization-level admin permissions (those require [the administration settings](#admin-settings)).
This role includes all New Relic platform permissions <DNT>**except**</DNT> the ability to manage organization-level settings, users, and billing. It's an admin role in the sense that it allows the configuration of our platform features (for example, the ability to configure <InlinePopover type="apm"/> settings), but it doesn't provide organization-level admin permissions (those require [the administrative settings](#admin-settings)).

This role is essentially the <DNT>**Standard user**</DNT> role, below, with the added ability to configure observability features.
</td>
Expand Down Expand Up @@ -185,20 +185,20 @@ Here's a table with our standard roles. To better understand these roles, go to

For more about how you'd assign roles to groups and create custom roles, see the [user management tutorial](/docs/accounts/accounts-billing/new-relic-one-user-management/tutorial-add-new-user-groups-roles-new-relic-one-user-model).

### Administration settings [#admin-settings]
### Administrative settings [#admin-settings]

You can add various <DNT>**Administration settings**</DNT> to a group. Basic users will not be able to use these settings.
You can add various <DNT>**Administrative settings**</DNT> to a group, which are roles scoped to your organization. Basic users will not be able to use these settings.

Settings include:

* <DNT>**Organization settings**</DNT>: Permissions related to organization settings, including adding accounts, and changing the name of the organization and accounts.
* <DNT>**Authentication domain settings**</DNT>: Permissions related to adding and managing users, including configuring authentication domains and customizing groups and roles. Options within this include:
* <DNT>**Organization manager**</DNT>: Permissions related to organization settings, including adding accounts, and changing the name of the organization and accounts. This also includes sensitive observability tasks, such as deleting certain entities.
* <DNT>**Authentication domain manager**</DNT>: Permissions related to adding and managing users, including configuring authentication domains and customizing groups and roles. Options within this include:
* <DNT>**Manage**</DNT>: Can manage all aspects of authentication domains, including configuring domains and adding users.
* <DNT>**Read only**</DNT>: Can view authentication domain and user information.
* <DNT>**Add users**</DNT>: Can view user information, and add users to the organization, but lacks other auth domain configuration and mgmt abilities.
* <DNT>**Read users**</DNT>: Can only view user information.
* <DNT>**Billing**</DNT>: Lets a user view and manage billing and usage, and data retention. For organizations with multiple accounts, billing is aggregated in the <DNT>**reporting account**</DNT> (usually the first account created in an organization).

* <DNT>**Organization Product Admin**</DNT>: Permissions related to organization-scoped observability features. It's an admin role in the sense that it allows the configuration of our platform features. This is the organization-scoped equivalent to <strong>All Product Admin</strong>.
### Group admin [#group-admin]

You can add a <DNT>**Group admin**</DNT> role to a group. This role gives the group the ability to add and remove users for one or more groups you select.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1425,10 +1425,11 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co
name="fe-check"
/>
</td>
<td>
Use the built-in `System.Data.ODBC` namespace from the .NET Framework.
* Available in all currently supported .NET Framework agent versions.
* All versions of the .NET Framework currently supported by Microsoft are verified to be compatible.
<td/>
</td>
</tr>

<tr>
Expand Down Expand Up @@ -1557,9 +1558,10 @@ Want to try out our .NET agent? [Create a New Relic account](https://newrelic.co
name="fe-check"
/>
</td>
<td>
* Latest verified compatible version: 4.0.40
* Known incompatible versions: 4.0.44 or higher
<td/>
</td>
</tr>

<tr>
Expand Down
Loading

0 comments on commit 982dd04

Please sign in to comment.