Azure devops 2019.1 - Activity logs - security

I look for a way to collect and save activity and security logs from the Azure devops server(onprem 2019.1).
Logs include - user logins, build events, work item events, security changes etc.
I'm aware about this option https://server_name/tfs/_oi/_diagnostics/activityLog. But it's not an api interface.
Any Idea how it's can be implemented that?
Thanks.

TFS keeps track of an activity log of all recent activities. This information is stored in 2 tables inside Tfs_Configuration and Tfs_collectionname called tbl_Command and tbl_Parameter. These tables keep a record of every single command that every single user has executed against TFS for the last 14 days.
If you don’t want to get activity log through tbl_Command table and hidden activity log page (http://server:port/tfs/_oi), I’m afraid there is no other way at present.
You could add your request for this feature on our UserVoice site, which is our main forum for product suggestions. After suggest raised, you can vote and add your comments for this feedback. The product team would provide the updates if they view it.

Related

See activity log in Gitlab Issues

Is there a way in (standard, hosted) Gitlab to see a chronology of my activity? At times it would be useful for timesheeting to be able to see what issues I have worked on during the day.
Yes, according to the docs it's possible to view the most recent activity on a user profile page.

Online collaboration on TFS

is it possible to collaborate online with TFS? I mean, when I move a task, others can see it in real time without sharing screen or updating the page. Thank you!
Azure DevOps Server 2020 Update 1 RC1 and higher has live updates on work items. If you change a work item someone else has open in view mode, it will update in their client.
Alternatively
You can enable notifications using ../DefaultCollection/_usersSettings/notifications
You can use the Follow icon to follow a work item. Any changes will result in an e-mail to you saying the item has changed, and what has changed.
If you move a story out of an iteration, the Taskboard (../_sprints/taskboard/..) view updates automatically for all users viewing that iteration
Similarly, if you add/edit/move/change state on a task in an iteration the Taskboard will update.

Can I use default workflows for this?

I have to create a workflow in Sharepoint online shown in the image. Below is the explanation of the workflow
A Sharepoint list form will be defined with required fields.
Step 1:
Whenever a new project requestor wants to request for resources, they use the link to create a new line item and submit
Step 2:
This item should be assigned to Manager. He will verify the details and assign it to some Lead.
Step 3 :
Lead will work with the requestor offline to gather details about the request and comes up with level of efforts, no. of resources required, etc. and creates a form(some excel template). This form needs to be uploaded to this request and on submit,
Step 4:
Now this item should go back to the manager. Manager will finally review the form created by the lead (and allocate resources - not part of this workflow) and closes the request, and the requests lifecycle is ended.
Is there a way I can achieve this using the inbuild workflow types given in SP online, or Should I create the workflow from scratch - I'm very new to SP, so sorry for the basic question
I don't think the default workflow would meet your requirements. Here are two options for you:
Use microsoft flow to build your workflow.
If you do not have flow license, I would suggest you use SharePoint Designer to build your wokflow.
If you have questions to build your workflow, feel free to ask.

Adding a log section to a Microsoft Dynamics CRM form

I am managing a projects (subtype of Activity) collection and I would like to implement a simple "Status change" log.
The idea would be that of replicating the simple but effective order management log seen in Prestashop (see image), Order management screen: User selects the new project status, clicks [UPDATE STATUS], and a new row gets appended to the log with new status, date of the change, person having triggered the change.
The basic implementation could be a text area used as a log, the best implementation possible would be that of having a grid.
Could somebody point me in the right direction to do this?
I am using version 2011 but moving to 2015 in a few days.
I suggest using auditing:
The following list identifies the data and operations that can be audited:
Create, update, and delete operations on records.
You could have an OptionSet representing the status of a project. If you enable auditing on this field (and enable auditing in general for CRM) you will be able to see an audit history of changes to the field. To do so users will have to navigate to the Audit History of the record.
The audit history will look similar to the following (in 2011):
If you don't want to use Auditing as suggested by Henrik in his answer, the alternative is to create a custom entity that will act as a log entity for your status change.
In order to implement the track of the changes, you need to implement a Plugin that will be triggered on the update message and will create the records inside the new custom entity.

AddMembersTeamRequest in Plugin - Privilege Delay

This is Dynamics CRM 2011 Rollup 11 On-Premises with SQL 2008 R2
Have the following scenario that we're trying to debug:
In a Synchronous PostCreate plugin we add users to a Team that owns a specific record and has read permission on that record via a security role. That should mean that when the Create process is completed the users added to the Team have access to the record. When such a user then goes to open the record they get a SecurityException ReadAccess error. The record does show in grids, which should not happen if they do not have Read permission on the record.
As a further test we execute the SDK call RetrievePrincipalAccessRequest for the user and record, from a console application, and see that the user does not have Read permission.
We can look a the Team Member list in the UI and user is a member of the Team. If we wait long enough (and create another record the issue will eventually resolve itself - several minutes later.)
We can add a user to the team, using the same code we executed in our Plugin (but running in a console app), and the user has Read permissions and can access the record immediately after the call completes.
There is clearly something going on in our Plugin that is causing an issue but we cannot figure out what or why - since the Create call completes without error and we can see the user listed in the UI. We are not doing anything funky - i.e., direct SQL, external service, etc.
We call a standard CRM 2011 SDK message and it completes without throwing an error. We can validate that the user was added in the user interface. The user have permission to Read the entity but they do not.
Any thoughts/ideas?? We've been tracking like crazy but haven't found our smoking gun!
UPDATE
We can reduce the incidence if you we put a pause in our plug-in code. This error only occurs when the add is done during a plug-in, not when it is done outside the plug-in. I'm starting to wonder if there is a SQL procedure/statement (there are three stored procs that fire when a user is added to a team) that gets cut short or fails to complete, for one reason or another, since the add is successful when not done in plug-in code.
Finally found the answer in the list of items resolved by Rollup 18 (http://support.microsoft.com/kb/2958724)
If You are assigning Team Membership via plugin, the user Cache does
not get invalidated, causing an error when trying to retrieve a
record. The issue occurs if the Team is has a security role and Access
Rights are controlled via Team ownership.
We had opened a ticket about 2 months ago with Microsoft which had involved a lot of back-and-forth but not a definitive fix.
So if you experience the same issue on CRM 2011 you need to update to Rollup 18.

Resources